public function parse($userAgent, array $headers = []) { $resultRaw = $this->getResult($userAgent, $headers); /* * Hydrate the model */ $result = new Model\UserAgent(); $result->setProviderResultRaw($resultRaw); /* * Bot detection */ if (isset($resultRaw->IsCrawler) && $resultRaw->IsCrawler === true) { $this->hydrateBot($result->getBot(), $resultRaw); return $result; } /* * hydrate the result */ $this->hydrateBrowser($result->getBrowser(), $resultRaw); $this->hydrateRenderingEngine($result->getRenderingEngine(), $resultRaw); $this->hydrateOperatingSystem($result->getOperatingSystem(), $resultRaw); $this->hydrateDevice($result->getDevice(), $resultRaw); return $result; }
public function parse($userAgent, array $headers = []) { $parser = $this->getParser(); /* @var $resultRaw \stdClass */ $resultRaw = $parser->getBrowser($userAgent); /* * No result found? */ if ($this->hasResult($resultRaw) !== true) { throw new NoResultFoundException('No result found for user agent: ' . $userAgent); } /* * Hydrate the model */ $result = new Model\UserAgent(); $result->setProviderResultRaw($resultRaw); /* * Bot detection (does only work with full_php_browscap.ini) */ if ($this->isBot($resultRaw) === true) { $this->hydrateBot($result->getBot(), $resultRaw); return $result; } /* * hydrate the result */ $this->hydrateBrowser($result->getBrowser(), $resultRaw); $this->hydrateRenderingEngine($result->getRenderingEngine(), $resultRaw); $this->hydrateOperatingSystem($result->getOperatingSystem(), $resultRaw); $this->hydrateDevice($result->getDevice(), $resultRaw); return $result; }
public function parse($userAgent, array $headers = []) { $resultRaw = $this->getResult($userAgent, $headers); /* * No result found? */ if ($this->hasResult($resultRaw) !== true) { throw new Exception\NoResultFoundException('No result found for user agent: ' . $userAgent); } /* * Hydrate the model */ $result = new Model\UserAgent(); $result->setProviderResultRaw($resultRaw); /* * Bot detection */ if ($this->isBot($resultRaw) === true) { $this->hydrateBot($result->getBot(), $resultRaw); return $result; } /* * hydrate the result */ $this->hydrateBrowser($result->getBrowser(), $resultRaw); $this->hydrateRenderingEngine($result->getRenderingEngine(), $resultRaw); $this->hydrateOperatingSystem($result->getOperatingSystem(), $resultRaw); $this->hydrateDevice($result->getDevice(), $resultRaw); return $result; }
public function testToArray() { $ua = new UserAgent(); $this->assertEquals(['browser' => $ua->getBrowser()->toArray(), 'renderingEngine' => $ua->getRenderingEngine()->toArray(), 'operatingSystem' => $ua->getOperatingSystem()->toArray(), 'device' => $ua->getDevice()->toArray(), 'bot' => $ua->getBot()->toArray()], $ua->toArray()); $this->assertEquals(['browser' => $ua->getBrowser()->toArray(), 'renderingEngine' => $ua->getRenderingEngine()->toArray(), 'operatingSystem' => $ua->getOperatingSystem()->toArray(), 'device' => $ua->getDevice()->toArray(), 'bot' => $ua->getBot()->toArray(), 'providerResultRaw' => null], $ua->toArray(true)); }
function hydrateResult(array $row2, \UserAgentParser\Model\UserAgent $result) { $toHydrate = ['resBrowserName' => $result->getBrowser()->getName(), 'resBrowserVersion' => $result->getBrowser()->getVersion()->getComplete(), 'resEngineName' => $result->getRenderingEngine()->getName(), 'resEngineVersion' => $result->getRenderingEngine()->getVersion()->getComplete(), 'resOsName' => $result->getOperatingSystem()->getName(), 'resOsVersion' => $result->getOperatingSystem()->getVersion()->getComplete(), 'resDeviceModel' => $result->getDevice()->getModel(), 'resDeviceBrand' => $result->getDevice()->getBrand(), 'resDeviceType' => $result->getDevice()->getType(), 'resDeviceIsMobile' => $result->getDevice()->getIsMobile(), 'resDeviceIsTouch' => $result->getDevice()->getIsTouch(), 'resBotIsBot' => $result->getBot()->getIsBot(), 'resBotName' => $result->getBot()->getName(), 'resBotType' => $result->getBot()->getType(), 'resRawResult' => serialize($result->toArray(true)['providerResultRaw'])]; return array_merge($row2, $toHydrate); }
public function parse($userAgent, array $headers = []) { $headers['User-Agent'] = $userAgent; $parser = $this->getParser($headers); /* * No result found? */ if ($parser->isDetected() !== true) { throw new Exception\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; }
public function parse($userAgent, array $headers = []) { $parser = $this->getParser(); /* @var $resultRaw \UAParser\Result\Result */ $resultRaw = $parser->parse($userAgent); /* * No result found? */ if ($this->hasResult($resultRaw) !== true) { throw new Exception\NoResultFoundException('No result found for user agent: ' . $userAgent); } /* @var $emailRaw \UAParser\Result\EmailClientResult */ // currently not used...any idea to implement it? /* * Hydrate the model */ $result = new Model\UserAgent(); $result->setProviderResultRaw($resultRaw); /* * Bot detection is currently not possible */ /* * hydrate the result */ $this->hydrateBrowser($result->getBrowser(), $resultRaw->getBrowser()); $this->hydrateRenderingEngine($result->getRenderingEngine(), $resultRaw->getRenderingEngine()); $this->hydrateOperatingSystem($result->getOperatingSystem(), $resultRaw->getOperatingSystem()); $this->hydrateDevice($result->getDevice(), $resultRaw->getDevice()); return $result; }