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

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

public parse ( $userAgent, array $headers = [] )
$headers array
    public function parse($userAgent, array $headers = [])
    {
        $parser = $this->getParser();
        $parser->analyze($userAgent);
        $browser = $parser->browser;
        $os = $parser->os;
        $device = $parser->device;
        $platform = $parser->platform;
        /*
         * No result found?
         */
        if ($this->hasResult($browser, $os, $device) !== true) {
            throw new NoResultFoundException('No result found for user agent: ' . $userAgent);
        }
        /*
         * Hydrate the model
         */
        $result = new Model\UserAgent();
        $result->setProviderResultRaw(['browser' => $browser, 'os' => $os, 'device' => $device, 'platform' => $platform]);
        /*
         * hydrate the result
         */
        $this->hydrateBrowser($result->getBrowser(), $browser);
        $this->hydrateOperatingSystem($result->getOperatingSystem(), $os);
        $this->hydrateDevice($result->getDevice(), $device);
        return $result;
    }

Usage Example

Пример #1
0
 public function testRealResultDevice()
 {
     $provider = new Zsxsoft();
     $result = $provider->parse('Mozilla/5.0 (Linux; Android 5.0.1; Nexus 7 Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.59 Safari/537.36 OPR/26.0.1656.87080');
     $this->assertEquals(['browser' => ['name' => 'Opera', 'version' => ['major' => 26, 'minor' => 0, 'patch' => 1656, 'alias' => null, 'complete' => '26.0.1656.87080']], 'renderingEngine' => ['name' => null, 'version' => ['major' => null, 'minor' => null, 'patch' => null, 'alias' => null, 'complete' => null]], 'operatingSystem' => ['name' => 'Android', 'version' => ['major' => 5, 'minor' => 0, 'patch' => 1, 'alias' => null, 'complete' => '5.0.1']], 'device' => ['model' => 'Nexus 7', 'brand' => 'Google', 'type' => null, 'isMobile' => null, 'isTouch' => null], 'bot' => ['isBot' => null, 'name' => null, 'type' => null]], $result->toArray());
     /*
      * Test the raw result
      */
     $rawResult = $result->getProviderResultRaw();
     $this->assertEquals(['browser' => ['link' => 'http://www.opera.com/', 'title' => 'Opera 26.0.1656.87080', 'name' => 'Opera', 'version' => '26.0.1656.87080', 'code' => 'opera-1', 'image' => 'img/16/browser/opera-1.png'], 'os' => ['link' => 'http://www.android.com/', 'name' => 'Android', 'version' => '5.0.1', 'code' => 'android', 'x64' => false, 'title' => 'Android 5.0.1', 'type' => 'os', 'dir' => 'os', 'image' => 'img/16/os/android.png'], 'device' => ['link' => 'https://www.google.com/nexus/', 'title' => 'Google Nexus 7', 'model' => 'Nexus 7', 'brand' => 'Google', 'code' => 'google-nexusone', 'dir' => 'device', 'type' => 'device', 'image' => 'img/16/device/google-nexusone.png'], 'platform' => ['link' => 'https://www.google.com/nexus/', 'title' => 'Google Nexus 7', 'model' => 'Nexus 7', 'brand' => 'Google', 'code' => 'google-nexusone', 'dir' => 'device', 'type' => 'device', 'image' => 'img/16/device/google-nexusone.png']], $rawResult);
 }
All Usage Examples Of UserAgentParser\Provider\Zsxsoft::parse