Example #1
0
 public function reload($wurflConfigurationPath)
 {
     $wurflConfig = WURFL_Configuration_ConfigFactory::create($wurflConfigurationPath);
     WURFL_Configuration_ConfigHolder::setWURFLConfig($wurflConfig);
     $cacheProvider = WURFL_Cache_CacheProviderFactory::getCacheProvider();
     $cacheProvider->clear();
     $persistenceProvider = WURFL_Xml_PersistenceProvider_PersistenceProviderManager::getPersistenceProvider();
     $persistenceProvider->setWURFLLoaded(FALSE);
     WURFL_WURFLManagerProvider::getWURFLManager($wurflConfigurationPath);
 }
Example #2
0
 /**
  * Get features from request
  *
  * @param  array $request $_SERVER variable
  * @return array
  */
 public static function getFromRequest($request, array $config)
 {
     if (!isset($config['xzend_wurflapi'])) {
         require_once 'Zend/Http/UserAgent/Features/Exception.php';
         throw new Zend_Http_UserAgent_Features_Exception('"xzend_wurflapi" configuration is not defined');
     }
     $config = $config['xzend_wurflapi'];
     if (empty($config['wurfl_lib_dir'])) {
         require_once 'Zend/Http/UserAgent/Features/Exception.php';
         throw new Zend_Http_UserAgent_Features_Exception('The "wurfl_lib_dir" parameter is not defined');
     }
     if (empty($config['wurfl_config_file']) && empty($config['wurfl_config_array'])) {
         require_once 'Zend/Http/UserAgent/Features/Exception.php';
         throw new Zend_Http_UserAgent_Features_Exception('The "wurfl_config_file" parameter is not defined');
     }
     if (empty($config['wurfl_api_version'])) {
         $config['wurfl_api_version'] = self::DEFAULT_API_VERSION;
     }
     switch ($config['wurfl_api_version']) {
         case '1.2':
             require_once $config['wurfl_lib_dir'] . 'Application.php';
             if (!empty($config['wurfl_config_file'])) {
                 $wurflConfig = WURFL_Configuration_ConfigFactory::create($config['wurfl_config_file']);
             } elseif (!empty($config['wurfl_config_array'])) {
                 $c = $config['wurfl_config_array'];
                 $wurflConfig = new WURFL_Configuration_InMemoryConfig();
                 $wurflConfig->wurflFile($c['wurfl']['main-file'])->wurflPatch($c['wurfl']['patches']);
                 if ($c['persistence']['provider'] == 'file') {
                     $wurflConfig->persistence("file", array(WURFL_Configuration_Config::DIR => $c['persistence']['dir']));
                 }
                 if ($c['cache']['provider'] == 'file') {
                     $wurflConfig->cache("file", array(WURFL_Configuration_Config::DIR => $c['cache']['dir'], WURFL_Configuration_Config::EXPIRATION => $c['cache']['expiration']));
                 }
             }
             $wurflManagerFactory = new WURFL_WURFLManagerFactory($wurflConfig);
             $wurflManager = $wurflManagerFactory->create();
             break;
         default:
             require_once 'Zend/Http/UserAgent/Features/Exception.php';
             throw new Zend_Http_UserAgent_Features_Exception(sprintf('Unknown API version "%s"', $config['wurfl_api_version']));
     }
     $device = $wurflManager->getDeviceForHttpRequest(array_change_key_case($request, CASE_UPPER));
     $features = $device->getAllCapabilities();
     return $features;
 }
Example #3
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);
 }
Example #4
0
 public function testShouldReloadWURFLIfWURFLFileTimeStampChanges()
 {
     $configurationFile = dirname(__FILE__) . DIRECTORY_SEPARATOR . self::WURFL_CONFIG_FILE;
     $wurflConfig = WURFL_Configuration_ConfigFactory::create($configurationFile);
     touch($wurflConfig->wurflFile);
 }