UserAgentParser\Provider\WhichBrowser::parse PHP Метод

parse() публичный Метод

public parse ( $userAgent, array $headers = [] )
$headers array
    public function parse($userAgent, array $headers = [])
    {
        $headers['User-Agent'] = $userAgent;
        $parser = $this->getParser($headers);
        /*
         * No result found?
         */
        if ($parser->isDetected() !== true) {
            throw new NoResultFoundException('No result found for user agent: ' . $userAgent);
        }
        /*
         * Hydrate the model
         */
        $result = new Model\UserAgent();
        $result->setProviderResultRaw($parser->toArray());
        /*
         * Bot detection
         */
        if ($parser->getType() === 'bot') {
            $this->hydrateBot($result->getBot(), $parser->browser);
            return $result;
        }
        /*
         * hydrate the result
         */
        $this->hydrateBrowser($result->getBrowser(), $parser->browser);
        $this->hydrateRenderingEngine($result->getRenderingEngine(), $parser->engine);
        $this->hydrateOperatingSystem($result->getOperatingSystem(), $parser->os);
        $this->hydrateDevice($result->getDevice(), $parser->device, $parser);
        return $result;
    }

Usage Example

 public function testRealResultDevice()
 {
     $provider = new WhichBrowser();
     $result = $provider->parse('Mozilla/5.0 (Linux; Android 4.3; SCH-R970C Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.3');
     $this->assertEquals(['browser' => ['name' => 'Chrome', 'version' => ['major' => 34, 'minor' => null, 'patch' => null, 'alias' => null, 'complete' => '34']], 'renderingEngine' => ['name' => 'Blink', 'version' => ['major' => null, 'minor' => null, 'patch' => null, 'alias' => null, 'complete' => null]], 'operatingSystem' => ['name' => 'Android', 'version' => ['major' => 4, 'minor' => 3, 'patch' => null, 'alias' => null, 'complete' => '4.3']], 'device' => ['model' => 'Galaxy S4', 'brand' => 'Samsung', 'type' => 'mobile:smart', 'isMobile' => true, 'isTouch' => null], 'bot' => ['isBot' => null, 'name' => null, 'type' => null]], $result->toArray());
     /*
      * Test the raw result
      */
     $rawResult = $result->getProviderResultRaw();
     $this->assertEquals(['browser' => ['name' => 'Chrome', 'version' => '34', 'type' => 'browser'], 'engine' => ['name' => 'Blink'], 'os' => ['name' => 'Android', 'version' => '4.3'], 'device' => ['type' => 'mobile', 'subtype' => 'smart', 'manufacturer' => 'Samsung', 'model' => 'Galaxy S4']], $rawResult);
 }
All Usage Examples Of UserAgentParser\Provider\WhichBrowser::parse