1*d5ef99ddSAndreas Gohr<?php 2*d5ef99ddSAndreas Gohr 3*d5ef99ddSAndreas Gohr/** 4*d5ef99ddSAndreas Gohr * Device Detector - The Universal Device Detection library for parsing User Agents 5*d5ef99ddSAndreas Gohr * 6*d5ef99ddSAndreas Gohr * @link https://matomo.org 7*d5ef99ddSAndreas Gohr * 8*d5ef99ddSAndreas Gohr * @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later 9*d5ef99ddSAndreas Gohr */ 10*d5ef99ddSAndreas Gohr 11*d5ef99ddSAndreas Gohrdeclare(strict_types=1); 12*d5ef99ddSAndreas Gohr 13*d5ef99ddSAndreas Gohrnamespace DeviceDetector\Parser\Client\Hints; 14*d5ef99ddSAndreas Gohr 15*d5ef99ddSAndreas Gohruse DeviceDetector\Parser\AbstractParser; 16*d5ef99ddSAndreas Gohr 17*d5ef99ddSAndreas Gohrclass BrowserHints extends AbstractParser 18*d5ef99ddSAndreas Gohr{ 19*d5ef99ddSAndreas Gohr /** 20*d5ef99ddSAndreas Gohr * @var string 21*d5ef99ddSAndreas Gohr */ 22*d5ef99ddSAndreas Gohr protected $fixtureFile = 'regexes/client/hints/browsers.yml'; 23*d5ef99ddSAndreas Gohr 24*d5ef99ddSAndreas Gohr /** 25*d5ef99ddSAndreas Gohr * @var string 26*d5ef99ddSAndreas Gohr */ 27*d5ef99ddSAndreas Gohr protected $parserName = 'BrowserHints'; 28*d5ef99ddSAndreas Gohr 29*d5ef99ddSAndreas Gohr /** 30*d5ef99ddSAndreas Gohr * Get browser name if is in collection 31*d5ef99ddSAndreas Gohr * 32*d5ef99ddSAndreas Gohr * @return array|null 33*d5ef99ddSAndreas Gohr */ 34*d5ef99ddSAndreas Gohr public function parse(): ?array 35*d5ef99ddSAndreas Gohr { 36*d5ef99ddSAndreas Gohr if (null === $this->clientHints) { 37*d5ef99ddSAndreas Gohr return null; 38*d5ef99ddSAndreas Gohr } 39*d5ef99ddSAndreas Gohr 40*d5ef99ddSAndreas Gohr $appId = $this->clientHints->getApp(); 41*d5ef99ddSAndreas Gohr $name = $this->getRegexes()[$appId] ?? null; 42*d5ef99ddSAndreas Gohr 43*d5ef99ddSAndreas Gohr if ('' === (string) $name) { 44*d5ef99ddSAndreas Gohr return null; 45*d5ef99ddSAndreas Gohr } 46*d5ef99ddSAndreas Gohr 47*d5ef99ddSAndreas Gohr return [ 48*d5ef99ddSAndreas Gohr 'name' => $name, 49*d5ef99ddSAndreas Gohr ]; 50*d5ef99ddSAndreas Gohr } 51*d5ef99ddSAndreas Gohr} 52