Browscap\Data\Expander::parseUserAgent PHP Method

parseUserAgent() private method

Render a single User Agent block
private parseUserAgent ( array $uaData, boolean $lite, boolean $standard, integer $sortIndex, string $divisionName ) : array
$uaData array
$lite boolean
$standard boolean
$sortIndex integer
$divisionName string
return array
    private function parseUserAgent(array $uaData, $lite, $standard, $sortIndex, $divisionName)
    {
        if (!isset($uaData['properties']) || !is_array($uaData['properties'])) {
            throw new \LogicException('properties are missing or not an array for key "' . $uaData['userAgent'] . '"');
        }
        $uaProperties = $uaData['properties'];
        if (!isset($uaProperties['Parent'])) {
            throw new \LogicException('the "parent" property is missing for key "' . $uaData['userAgent'] . '"');
        }
        if (array_key_exists('platform', $uaData)) {
            $platform = $this->getDataCollection()->getPlatform($uaData['platform']);
            if (!$platform->isLite()) {
                $lite = false;
            }
            if (!$platform->isStandard()) {
                $standard = false;
            }
            $platformData = $platform->getProperties();
        } else {
            $platformData = [];
        }
        if (array_key_exists('engine', $uaData)) {
            $engine = $this->getDataCollection()->getEngine($uaData['engine']);
            $engineData = $engine->getProperties();
        } else {
            $engineData = [];
        }
        if (array_key_exists('device', $uaData)) {
            $device = $this->getDataCollection()->getDevice($uaData['device']);
            $deviceData = $device->getProperties();
            if (!$device->isStandard()) {
                $standard = false;
            }
        } else {
            $deviceData = [];
        }
        $ua = $uaData['userAgent'];
        $output = [$ua => array_merge(['lite' => $lite, 'standard' => $standard, 'sortIndex' => $sortIndex, 'division' => $divisionName], $platformData, $engineData, $deviceData, $uaProperties)];
        if (!isset($uaData['children']) || !is_array($uaData['children']) || !count($uaData['children'])) {
            return $output;
        }
        foreach ($uaData['children'] as $child) {
            $output = array_merge($output, $this->parseChildren($ua, $child, $lite, $standard));
        }
        return $output;
    }