/** * 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)); }
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); }
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) { } }
/** * 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); }
/** * 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)); }
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)); }
/** * 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; }