DeviceDetector\Parser\Client\Browser\Engine::parse PHP Метод

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

public parse ( )
    public function parse()
    {
        foreach ($this->getRegexes() as $regex) {
            $matches = $this->matchUserAgent($regex['regex']);
            if ($matches) {
                break;
            }
        }
        if (!$matches) {
            return '';
        }
        $name = $this->buildByMatch($regex['name'], $matches);
        foreach (self::getAvailableEngines() as $engineName) {
            if (strtolower($name) == strtolower($engineName)) {
                return $engineName;
            }
        }
        // This Exception should never be thrown. If so a defined browser name is missing in $availableEngines
        throw new \Exception('Detected browser engine was not found in $availableEngines');
        // @codeCoverageIgnore
    }

Usage Example

Пример #1
0
 protected function buildEngine($engineData, $browserVersion)
 {
     $engine = '';
     // if an engine is set as default
     if (isset($engineData['default'])) {
         $engine = $engineData['default'];
     }
     // check if engine is set for browser version
     if (array_key_exists('versions', $engineData) && is_array($engineData['versions'])) {
         foreach ($engineData['versions'] as $version => $versionEngine) {
             if (version_compare($browserVersion, $version) >= 0) {
                 $engine = $versionEngine;
             }
         }
     }
     // try to detect the engine using the regexes
     if (empty($engine)) {
         $engineParser = new Engine();
         $engineParser->setUserAgent($this->userAgent);
         $engine = $engineParser->parse();
     }
     return $engine;
 }