DeviceDetector\Parser\Client\Browser::parse PHP Method

parse() public method

public parse ( )
    public function parse()
    {
        foreach ($this->getRegexes() as $regex) {
            $matches = $this->matchUserAgent($regex['regex']);
            if ($matches) {
                break;
            }
        }
        if (empty($matches)) {
            return null;
        }
        $name = $this->buildByMatch($regex['name'], $matches);
        foreach (self::getAvailableBrowsers() as $browserShort => $browserName) {
            if (strtolower($name) == strtolower($browserName)) {
                $version = (string) $this->buildVersion($regex['version'], $matches);
                $engine = $this->buildEngine(isset($regex['engine']) ? $regex['engine'] : array(), $version);
                $engineVersion = $this->buildEngineVersion($engine);
                return array('type' => 'browser', 'name' => $browserName, 'short_name' => $browserShort, 'version' => $version, 'engine' => $engine, 'engine_version' => $engineVersion);
            }
        }
        // This Exception should never be thrown. If so a defined browser name is missing in $availableBrowsers
        throw new \Exception('Detected browser name was not found in $availableBrowsers');
        // @codeCoverageIgnore
    }

Usage Example

 /**
  * @dataProvider getFixtures
  */
 public function testParse($useragent, $client)
 {
     $browserParser = new Browser();
     $browserParser->setVersionTruncation(Browser::VERSION_TRUNCATION_NONE);
     $browserParser->setUserAgent($useragent);
     $this->assertEquals($client, $browserParser->parse());
     self::$browsersTested[] = $client['short_name'];
 }