Пример #1
0
 /**
  * Prepares the list data
  */
 public function prepareVars()
 {
     $pathName = \UserAgentInfoPeer::getOther($this->model->{$this->columnName});
     $this->vars['name'] = $this->formField->getName();
     $this->vars['value'] = 'Browser: ' . $pathName->getBrowserName() . ' ' . $pathName->getBrowserVersionMajor() . ($pathName->getBrowserVersionMinor() ? '.' . $pathName->getBrowserVersionMinor() : '') . ' / OS: ' . $pathName->getOsName();
 }
Пример #2
0
function test_formatTime($time)
{
    return number_format($time * 1000, 1) . ' ms';
}
$start_time = microtime(true);
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . '../UserAgentInfoPeer.class.php';
$start_time = test_formatTime(microtime(true) - $start_time);
$my_time = microtime(true);
$my_ua_string = UserAgentInfoPeer::getMy()->getUserAgentString();
$my_time = test_formatTime(microtime(true) - $my_time);
$user_agents = explode("\n", trim(file_get_contents(UserAgentInfoConfig::$base_dir . UserAgentInfoConfig::DIR_TESTS . DIRECTORY_SEPARATOR . 'user-agent-examples.txt')));
array_unshift($user_agents, $my_ua_string, 'Random UA 1 (no match): ' . uniqid(null, true), 'Random UA 2 (no match): ' . uniqid(null, true), 'Random UA 3 (no match): ' . uniqid(null, true));
$results = array();
foreach ($user_agents as $i => $one_ua) {
    $t = microtime(true);
    $mua = UserAgentInfoPeer::getOther($one_ua, true);
    $t = test_formatTime(microtime(true) - $t);
    if ($mua->isMobileAndroid()) {
        $mobile_info = $mua->isMobileTablet() ? 'Android tablet' : 'Android';
    } elseif ($mua->isMobileAppleIos()) {
        $mobile_info = $mua->isMobileTablet() ? 'iPad' : 'iPhone';
    } elseif ($mua->isMobile()) {
        $mobile_info = $mua->isMobileTablet() ? 'tablet' : 'mobile';
    } else {
        $mobile_info = '';
    }
    $results[md5($mua->getUserAgentString())] = array($i, $t, $mua->isIdentifiedFully() ? '' : ($mua->isIdentified() ? '?' : 'x'), $mua->getUserAgentString(), $mua->renderInfoBrowser(true), $mua->renderInfoOs(true), $mua->renderInfoDevice(), $mua->getMobileGrade() ? 'grade ' . $mua->getMobileGrade() : '', $mua->isBanned() ? 'banned' : '', $mua->isBot() ? $mua->isBotReader() ? 'reader' : 'bot' : '', $mobile_info);
}
$old_results = call_user_func(array(UserAgentInfoConfig::CACHE_CLASS_NAME, 'get'), 'test-archive-of-user-agents');
call_user_func(array(UserAgentInfoConfig::CACHE_CLASS_NAME, 'set'), 'test-archive-of-user-agents', $results);
$old_md5 = md5(serialize($old_results));
 /**
  * Executed once or never. Sets all the information that is required for parsing the user agent string.
  * 
  * If all the user agents are taken from cache, this method is not called
  */
 protected static function initAfterCache()
 {
     if (null !== self::$uaparser) {
         return;
     }
     require_once UserAgentInfoConfig::$base_dir . UserAgentInfoConfig::DIR_IMPORTS . DIRECTORY_SEPARATOR . 'uaparser.php';
     self::$browscap_wrapper = new BrowscapWrapper(self::$browscap_source_file);
     self::$uaparser = new UAParser(self::$uaparser_source_file);
     self::$md_browsers = array_keys(self::$mobile_detect->getBrowsers());
     $md_os_list = self::$mobile_detect->getOperatingSystems();
     self::$md_os_list = array_keys($md_os_list);
     self::$md_devices = array_keys(self::$mobile_detect->getPhoneDevices() + self::$mobile_detect->getTabletDevices());
     self::$md_devices_generic = array();
     foreach (self::$md_devices as $device) {
         if (!in_array($device, self::$generic_devices)) {
             self::$md_devices_generic[] = str_replace(self::MOBILE_DETECT_TABLET_SUFFIX, '', $device);
         }
     }
     self::$md_devices_generic[] = 'Nokia';
     self::$md_devices_generic = array_unique(self::$md_devices_generic);
 }