示例#1
0
 /**
  * @constructor
  */
 public function __construct()
 {
     $mongo = Registry::get("MongoDB");
     if (!$mongo) {
         $m = new MongoClient();
         $mongo = $m->stats;
         Registry::set("MongoDB", $mongo);
     }
     $parser = Registry::get("UAParser");
     if (!$parser) {
         $parser = UAParser\Parser::create();
         Registry::set("UAParser", $parser);
     }
 }
示例#2
0
<?php

require __DIR__ . '/../../vendor/autoload.php';
$testFile = __DIR__ . '/useragents.txt';
$tests = file($testFile);
$count = count($tests);
echo "Read {$count} agents from {$testFile}\nRunning benchmark, please wait...";
$parser = new UAParser\Parser();
$start = microtime(true);
foreach ($tests as $agent) {
    $parser->parse($agent);
}
$time = microtime(true) - $start;
echo "\nParsed {$count} agents in {$time} seconds\n";
示例#3
0
 /**
  * Create a new BrowserInfo object for the given user agent string.
  * Instances may not be created directly, use the static newFromContext method instead.
  *
  * @param string $userAgent
  */
 protected function parseUserAgent($userAgent)
 {
     /**
      * A ua-parser object looks like this (simplified version of the actual object)
      * @source https://github.com/tobie/ua-parser
      *
      *     ua->family: Chrome
      *     ua->major: 24
      *     ua->minor: 0
      *     ua->patch: 1312
      *     os->family: Mac OS X
      *     os->major: 10
      *     os->minor: 8
      *     os->patch: 2
      *     device->family:
      *     toFullString: Chrome 24.0.1312/Mac OS X 10.8.2
      */
     $parser = UAParser\Parser::create();
     $parsed = $parser->parse($userAgent);
     $uaData = new stdClass();
     $uaData->browserFamily = $parsed->ua->family;
     $uaData->browserMajor = $parsed->ua->major;
     $uaData->browserMinor = $parsed->ua->minor;
     $uaData->browserPatch = $parsed->ua->patch;
     $uaData->osFamily = $parsed->os->family;
     $uaData->osMajor = $parsed->os->major;
     $uaData->osMinor = $parsed->os->minor;
     $uaData->osPatch = $parsed->os->patch;
     $uaData->deviceFamily = $parsed->device->family;
     $uaData->deviceMajor = null;
     // deprecated
     $uaData->deviceMinor = null;
     // deprecated
     $uaData->displayInfo = self::getDisplayInfo($uaData);
     $this->rawUserAgent = $userAgent;
     $this->uaData = $uaData;
     return $this;
 }