예제 #1
0
 /**
  * Adds the pair $userAgent, $deviceID to the clusters they belong to.
  *
  * @param String $userAgent
  * @param String $deviceID
  * @see WURFL_Handlers_Handler::filter()
  */
 public function filter($userAgent, $deviceID)
 {
     WURFL_Handlers_Utils::reset();
     $generic_normalizer = WURFL_UserAgentHandlerChainFactory::createGenericNormalizers();
     $userAgent = $generic_normalizer->normalize($userAgent);
     $this->_userAgentHandlers[0]->filter($userAgent, $deviceID);
 }
 /**
  * Initializes the factory with an instance of all possible WURFL_Handlers_Handler objects from the given $context
  * @param WURFL_Context $context
  */
 private static function init(WURFL_Context $context)
 {
     self::$_userAgentHandlerChain = new WURFL_UserAgentHandlerChain();
     $genericNormalizers = self::createGenericNormalizers();
     $chromeNormalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_Chrome());
     $konquerorNormalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_Konqueror());
     $safariNormalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_Safari());
     $firefoxNormalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_Firefox());
     $msieNormalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_MSIE());
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_NokiaHandler($context, $genericNormalizers));
     $lguplusNormalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_LGUPLUSNormalizer());
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_LGUPLUSHandler($context, $genericNormalizers));
     $androidNormalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_Android());
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_AndroidHandler($context, $androidNormalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SonyEricssonHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_MotorolaHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_BlackBerryHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SiemensHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SagemHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SamsungHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_PanasonicHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_NecHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_QtekHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_MitsubishiHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_PhilipsHandler($context, $genericNormalizers));
     $lgNormalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_LGNormalizer());
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_LGHandler($context, $lgNormalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_AppleHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_KyoceraHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_AlcatelHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SharpHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SanyoHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_BenQHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_PantechHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_ToshibaHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_GrundigHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_HTCHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_VodafoneHandler($context, $genericNormalizers));
     // BOT
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_BotCrawlerTranscoderHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SPVHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_WindowsCEHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_PortalmmmHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_DoCoMoHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_KDDIHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_OperaMiniHandler($context, $genericNormalizers));
     $maemoNormalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_Maemo());
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_MaemoBrowserHandler($context, $maemoNormalizer));
     // Web Browsers handlers
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_ChromeHandler($context, $chromeNormalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_AOLHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_OperaHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_KonquerorHandler($context, $konquerorNormalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SafariHandler($context, $safariNormalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_FirefoxHandler($context, $firefoxNormalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_MSIEHandler($context, $msieNormalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_CatchAllHandler($context, $genericNormalizers));
 }
예제 #3
0
파일: build.php 프로젝트: godboko/modules
function buildPersistenceWith($wurflConfig)
{
    $persistenceStorage = WURFL_Storage_Factory::create($wurflConfig->persistence);
    $context = new WURFL_Context($persistenceStorage);
    $userAgentHandlerChain = WURFL_UserAgentHandlerChainFactory::createFrom($context);
    $devicePatcher = new WURFL_Xml_DevicePatcher();
    $deviceRepositoryBuilder = new WURFL_DeviceRepositoryBuilder($persistenceStorage, $userAgentHandlerChain, $devicePatcher);
    return $deviceRepositoryBuilder->build($wurflConfig->wurflFile, $wurflConfig->wurflPatches);
}
예제 #4
0
파일: build.php 프로젝트: acasademont/wurfl
function buildPersistenceWith($wurflConfig)
{
    $force_rebuild = true;
    $persistenceStorage = WURFL_Storage_Factory::create($wurflConfig->persistence);
    if ($force_rebuild) {
        $persistenceStorage->clear();
    }
    $context = new WURFL_Context($persistenceStorage);
    $userAgentHandlerChain = WURFL_UserAgentHandlerChainFactory::createFrom($context);
    $devicePatcher = new WURFL_Xml_DevicePatcher();
    $deviceRepositoryBuilder = new WURFL_DeviceRepositoryBuilder($persistenceStorage, $userAgentHandlerChain, $devicePatcher);
    return $deviceRepositoryBuilder->build($wurflConfig->wurflFile, $wurflConfig->wurflPatches, $wurflConfig->capabilityFilter);
}
 private static function init()
 {
     self::$_userAgentHandlerChain = new WURFL_UserAgentHandlerChain();
     $normalizer = new WURFL_Request_UserAgentNormalizer_Null();
     $chromeNormalizer = new WURFL_Request_UserAgentNormalizer_Chrome();
     $operaNormalizer = new WURFL_Request_UserAgentNormalizer_Opera();
     $safariNormalizer = new WURFL_Request_UserAgentNormalizer_Safari();
     $firefoxNormalizer = new WURFL_Request_UserAgentNormalizer_Firefox();
     $msieNormalizer = new WURFL_Request_UserAgentNormalizer_MSIE();
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_VodafoneHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_NokiaHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SonyEricssonHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_MotorolaHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_BlackBerryHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SiemensHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SagemHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SamsungHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_PanasonicHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_NecHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_QtekHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_MitsubishiHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_PhilipsHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_LGHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_AppleHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_KyoceraHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_AlcatelHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SharpHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SanyoHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_BenQHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_PantechHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_ToshibaHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_GrundigHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_HTCHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SPVHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_WindowsCEHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_PortalmmmHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_DoCoMoHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_KDDIHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_AndroidHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_OperaMiniHandler($normalizer));
     // Web Browsers handlers
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_BotCrawlerTranscoderHandler($normalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_ChromeHandler($chromeNormalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_OperaHandler($operaNormalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SafariHandler($safariNormalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_FirefoxHandler($firefoxNormalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_MSIEHandler($msieNormalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_CatchAllHandler($normalizer));
 }
 public function testShouldNotRebuildTheRepositoryIfAlreadyBuild()
 {
     $persistenceProvider = new WURFL_Storage_Memory();
     $persistenceProvider->setWURFLLoaded(TRUE);
     $context = new WURFL_Context($persistenceProvider);
     $userAgentHandlerChain = WURFL_UserAgentHandlerChainFactory::createFrom($context);
     $devicePatcher = new WURFL_Xml_DevicePatcher();
     $deviceRepositoryBuilder = new WURFL_DeviceRepositoryBuilder($persistenceProvider, $userAgentHandlerChain, $devicePatcher);
     $this->assertNotNull($deviceRepositoryBuilder);
     $wurflFile = dirname(__FILE__) . DIRECTORY_SEPARATOR . self::WURFL_FILE;
     try {
         $deviceRepository = $deviceRepositoryBuilder->build($wurflFile);
         $deviceRepository->getDevice("generic");
     } catch (Exception $ex) {
     }
 }
예제 #7
0
 /**
  * Initiaizes the actual WURFLManager
  *
  * @param string $configurationFilePath Absolute path to the wurfl configuration file
  */
 private static function _init($configurationFilePath)
 {
     $wurflConfig = WURFL_Configuration_ConfigFactory::create($configurationFilePath);
     WURFL_Configuration_ConfigHolder::setWURFLConfig($wurflConfig);
     $wurflFileParser = new WURFL_Xml_WURFLFileParser();
     $wurflPatchFileParser = new WURFL_Xml_WURFLPatchFileParser();
     $wurflPatchManager = new WURFL_Xml_PatchManager();
     // Persistence and Cache Providers
     $persistenceProvider = WURFL_Xml_PersistenceProvider_PersistenceProviderManager::getPersistenceProvider();
     $cacheProvider = WURFL_Cache_CacheProviderFactory::getCacheProvider();
     $xmlResourceManager = new WURFL_Xml_XMLResourceManager($persistenceProvider, $wurflPatchManager, $wurflFileParser, $wurflPatchFileParser);
     $userAgentHandlerChain = WURFL_UserAgentHandlerChainFactory::create();
     $deviceRepository = new WURFL_DeviceRepository($xmlResourceManager, $userAgentHandlerChain, $persistenceProvider);
     $wurflService = new WURFL_WURFLService($deviceRepository, $userAgentHandlerChain, $cacheProvider);
     $userAgentNormalizer = new WURFL_Request_UserAgentNormalizer();
     $requestFactory = new WURFL_Request_GenericRequestFactory($userAgentNormalizer);
     self::$wurflManager = new WURFL_WURFLManager($wurflService, $requestFactory);
 }
예제 #8
0
 /**
  * Wraps the model device with WURFL_Xml_ModelDevice.  This function takes the
  * Device ID and returns the WURFL_CustomDevice with all capabilities.
  *
  * @param string $deviceID
  * @param WURFL_Request_GenericRequest|null $request
  * @return WURFL_CustomDevice
  */
 private function getWrappedDevice($deviceID, $request = null)
 {
     $modelDevices = $this->_cacheProvider->load('DEVS_' . $deviceID);
     if (empty($modelDevices)) {
         $modelDevices = $this->_deviceRepository->getDeviceHierarchy($deviceID);
     }
     $this->_cacheProvider->save('DEVS_' . $deviceID, $modelDevices);
     if ($request === null) {
         // If a request was not provided, we generate one from the WURFL entry itself
         // to help resolve the virtual capabilities
         $requestFactory = new WURFL_Request_GenericRequestFactory();
         $request = $requestFactory->createRequestForUserAgent($modelDevices[0]->userAgent);
         $genericNormalizer = WURFL_UserAgentHandlerChainFactory::createGenericNormalizers();
         $request->userAgentNormalized = $genericNormalizer->normalize($request->userAgent);
     }
     // The CustomDevice is not cached since virtual capabilities must be recalculated
     // for every different request.
     return new WURFL_CustomDevice($modelDevices, $request);
 }
 /**
  * Initializes the factory with an instance of all possible WURFL_Handlers_Handler objects from the given $context
  * @param WURFL_Context $context
  */
 private static function init(WURFL_Context $context)
 {
     self::$_userAgentHandlerChain = new WURFL_UserAgentHandlerChain();
     $genericNormalizers = self::createGenericNormalizers();
     /**** Smart TVs ****/
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SmartTVHandler($context, $genericNormalizers));
     /**** Mobile devices ****/
     $kindleNormalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_Kindle());
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_KindleHandler($context, $kindleNormalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_LGUPLUSHandler($context, $genericNormalizers));
     /**** UCWEB ****/
     $ucwebu2Normalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_UcwebU2());
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_UcwebU2Handler($context, $ucwebu2Normalizer));
     $ucwebu3Normalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_UcwebU3());
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_UcwebU3Handler($context, $ucwebu3Normalizer));
     /**** Java Midlets ****/
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_JavaMidletHandler($context, $genericNormalizers));
     /**** Mobile platforms ****/
     // Android Matcher Chain
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_OperaMiniOnAndroidHandler($context, $genericNormalizers));
     $operaMobiNormalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_OperaMobiOrTabletOnAndroid());
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_OperaMobiOrTabletOnAndroidHandler($context, $operaMobiNormalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_FennecOnAndroidHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_Ucweb7OnAndroidHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_NetFrontOnAndroidHandler($context, $genericNormalizers));
     $androidNormalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_Android());
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_AndroidHandler($context, $androidNormalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_AppleHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_WindowsPhoneDesktopHandler($context, $genericNormalizers));
     $winPhoneNormalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_WindowsPhone());
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_WindowsPhoneHandler($context, $winPhoneNormalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_NokiaOviBrowserHandler($context, $genericNormalizers));
     /**** High workload mobile matchers ****/
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_NokiaHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SamsungHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_BlackBerryHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SonyEricssonHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_MotorolaHandler($context, $genericNormalizers));
     /**** Other mobile matchers ****/
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_AlcatelHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_BenQHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_DoCoMoHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_GrundigHandler($context, $genericNormalizers));
     $htcMacNormalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_HTCMac());
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_HTCMacHandler($context, $htcMacNormalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_HTCHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_KDDIHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_KyoceraHandler($context, $genericNormalizers));
     $lgNormalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_LG());
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_LGHandler($context, $lgNormalizer));
     $maemoNormalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_Maemo());
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_MaemoHandler($context, $maemoNormalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_MitsubishiHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_NecHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_NintendoHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_PanasonicHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_PantechHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_PhilipsHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_PortalmmmHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_QtekHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_ReksioHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SagemHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SanyoHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SharpHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SiemensHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SkyfireHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SPVHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_ToshibaHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_VodafoneHandler($context, $genericNormalizers));
     $webOSNormalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_WebOS());
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_WebOSHandler($context, $webOSNormalizer));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_FirefoxOSHandler($context, $genericNormalizers));
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_OperaMiniHandler($context, $genericNormalizers));
     /**** Tablet Browsers ****/
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_WindowsRTHandler($context, $genericNormalizers));
     /**** Robots / Crawlers ****/
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_BotCrawlerTranscoderHandler($context, $genericNormalizers));
     /**** Game Consoles ****/
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_XboxHandler($context, $genericNormalizers));
     /**** Desktop Browsers ****/
     $chromeNormalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_Chrome());
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_ChromeHandler($context, $chromeNormalizer));
     $firefoxNormalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_Firefox());
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_FirefoxHandler($context, $firefoxNormalizer));
     $msieNormalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_MSIE());
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_MSIEHandler($context, $msieNormalizer));
     $operaNormalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_Opera());
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_OperaHandler($context, $operaNormalizer));
     $safariNormalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_Safari());
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_SafariHandler($context, $safariNormalizer));
     $konquerorNormalizer = $genericNormalizers->addUserAgentNormalizer(new WURFL_Request_UserAgentNormalizer_Specific_Konqueror());
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_KonquerorHandler($context, $konquerorNormalizer));
     /**** All other requests ****/
     self::$_userAgentHandlerChain->addUserAgentHandler(new WURFL_Handlers_CatchAllHandler($context, $genericNormalizers));
 }
예제 #10
0
 public function setUp()
 {
     $this->normalizer = WURFL_UserAgentHandlerChainFactory::createGenericNormalizers();
 }
 /**
  * Initializes the WURFL Manager Factory by assigning cache and persistence providers
  */
 private function init()
 {
     $logger = null;
     //$this->logger($wurflConfig->logger);
     $context = new WURFL_Context($this->persistenceStorage, $this->cacheStorage, $logger);
     $userAgentHandlerChain = WURFL_UserAgentHandlerChainFactory::createFrom($context);
     $deviceRepository = $this->deviceRepository($this->persistenceStorage, $userAgentHandlerChain);
     $wurflService = new WURFL_WURFLService($deviceRepository, $userAgentHandlerChain, $this->cacheStorage);
     $requestFactory = new WURFL_Request_GenericRequestFactory();
     $this->wurflManager = new WURFL_WURFLManager($wurflService, $requestFactory);
 }
	private function init() {
		$persistenceProvider = self::persistenceProvider ( $this->wurflConfig->persistence );
		$cacheProvider = self::cacheProvider ( $this->wurflConfig->cache );
		$logger = null; //$this->logger($wurflConfig->logger);
		

		$context = new WURFL_Context ( $persistenceProvider );
		$context = $context->cacheProvider ( $cacheProvider )->logger ( $logger );
		
		$userAgentHandlerChain = WURFL_UserAgentHandlerChainFactory::createFrom ( $context );
		$deviceRepository = $this->deviceRepository ( $persistenceProvider, $userAgentHandlerChain );
		$wurflService = new WURFL_WURFLService ( $deviceRepository, $userAgentHandlerChain, $cacheProvider );
		
		$userAgentNormalizer = new WURFL_Request_UserAgentNormalizer ();
		$requestFactory = new WURFL_Request_GenericRequestFactory ( $userAgentNormalizer );
		
		$this->wurflManager = new WURFL_WURFLManager ( $wurflService, $requestFactory );
		$persistenceProvider->save(self::WURFL_LAST_MODIFICATION_TIME, filemtime($this->wurflConfig->wurflFile));
	
	}
예제 #13
0
 /**
  * Returns the device id for the device that matches the $request
  * @param WURFL_Request_GenericRequest $request WURFL Request object
  * @return string WURFL device id
  */
 private function deviceIdForRequest($request)
 {
     $deviceId = $this->_cacheProvider->load($request->id);
     if (empty($deviceId)) {
         $generic_normalizer = WURFL_UserAgentHandlerChainFactory::createGenericNormalizers();
         $request->userAgentNormalized = $generic_normalizer->normalize($request->userAgent);
         if (WURFL_Configuration_ConfigHolder::getWURFLConfig()->isHighPerformance() && WURFL_Handlers_Utils::isDesktopBrowserHeavyDutyAnalysis($request->userAgentNormalized)) {
             // This device has been identified as a web browser programatically, so no call to WURFL is necessary
             return WURFL_Constants::GENERIC_WEB_BROWSER;
         }
         $deviceId = $this->_userAgentHandlerChain->match($request);
         // save it in cache
         $this->_cacheProvider->save($request->id, $deviceId);
     } else {
         $request->matchInfo->from_cache = true;
         $request->matchInfo->lookup_time = 0.0;
     }
     return $deviceId;
 }