/** * Filter the parsed result to the schema. * * @param \UAParser\Result\Result $parsed * @return array */ public function filter($parsed) { $browser = $parsed->getBrowser(); $os = $parsed->getOperatingSystem(); $device = $parsed->getDevice(); $filtered = array(); // Browser informations. if ($browser->getFamily() != 'Other') { $filtered['browserFamily'] = $browser->getFamily(); $filtered['browserVersionMajor'] = $browser->getMajor() ?: 0; $filtered['browserVersionMinor'] = $browser->getMinor() ?: 0; $filtered['browserVersionPatch'] = $browser->getPatch() ?: 0; } // Operating system informations. if ($os->getFamily() != 'Other') { $filtered['osFamily'] = $os->getFamily(); $filtered['osVersionMajor'] = $os->getMajor() ?: 0; $filtered['osVersionMinor'] = $os->getMinor() ?: 0; $filtered['osVersionPatch'] = $os->getPatch() ?: 0; } // Device informations. if ($device->getConstructor() != 'Other') { $filtered['isMobile'] = $device->isMobile(); $filtered['isTablet'] = $device->isTablet(); $filtered['deviceFamily'] = $device->getConstructor(); $filtered['deviceModel'] = $device->getModel() ?: null; } return $filtered; }
/** * * @param UAParserResult $resultRaw * * @return bool */ private function hasResult(UAParserResult $resultRaw) { /* @var $browserRaw \UAParser\Result\BrowserResult */ $browserRaw = $resultRaw->getBrowser(); if ($browserRaw !== null && $this->isRealResult($browserRaw->getFamily()) === true) { return true; } /* @var $osRaw \UAParser\Result\OperatingSystemResult */ $osRaw = $resultRaw->getOperatingSystem(); if ($osRaw !== null && $this->isRealResult($osRaw->getFamily()) === true) { return true; } /* @var $deviceRaw \UAParser\Result\DeviceResult */ $deviceRaw = $resultRaw->getDevice(); if ($deviceRaw !== null && $this->isRealResult($deviceRaw->getConstructor()) === true) { return true; } if ($deviceRaw !== null && $this->isRealResult($deviceRaw->getModel()) === true) { return true; } return false; }