public function __construct() { /* * This is an example of configuring the WURFL PHP API */ // Enable all error logging while in development ini_set('display_errors', 'on'); error_reporting(E_ALL); $wurflDir = dirname(__FILE__) . '/wurfl/WURFL'; $resourcesDir = dirname(__FILE__) . '/wurfl/resources'; require_once $wurflDir . '/Application.php'; $persistenceDir = $resourcesDir . '/storage/persistence'; $cacheDir = $resourcesDir . '/storage/cache'; // Create WURFL Configuration $wurflConfig = new WURFL_Configuration_InMemoryConfig(); // Set location of the WURFL File $wurflConfig->wurflFile($resourcesDir . '/wurfl.zip'); // Set the match mode for the API ('performance' or 'accuracy') $wurflConfig->matchMode('performance'); // Setup WURFL Persistence $wurflConfig->persistence('file', array('dir' => $persistenceDir)); // Setup Caching $wurflConfig->cache('file', array('dir' => $cacheDir, 'expiration' => 36000)); // Create a WURFL Manager Factory from the WURFL Configuration $wurflManagerFactory = new WURFL_WURFLManagerFactory($wurflConfig); // Create a WURFL Manager /* @var $wurflManager WURFL_WURFLManager */ $this->wurflManager = $wurflManagerFactory->create(); $this->wurflDevice = $this->wurflManager->getDeviceForHttpRequest($_SERVER); }
private function _load_wrfl() { if ($this->device == null) { $wurflDir = Yii::getPathOfAlias($this->wurflDir); $persistenceDir = Yii::getPathOfAlias($this->persistenceDir); $cacheDir = Yii::getPathOfAlias($this->cacheDir); require_once realpath($wurflDir . '/Application.php'); Yii::registerAutoloader(array('WURFL_ClassLoader', 'loadClass')); // Create WURFL Configuration $wurflConfig = new WURFL_Configuration_InMemoryConfig(); // Set location of the WURFL File $wurflConfig->wurflFile(realpath(Yii::getPathOfAlias($this->wurflFileDir) . '/wurfl.zip')); // Set the match mode for the API ('performance' or 'accuracy') $wurflConfig->matchMode($this->matchMode); // Setup WURFL Persistence $wurflConfig->persistence('file', array('dir' => $persistenceDir)); // Setup Caching $wurflConfig->cache('file', array('dir' => $cacheDir, 'expiration' => $this->expiration)); // Create a WURFL Manager Factory from the WURFL Configuration $wurflManagerFactory = new WURFL_WURFLManagerFactory($wurflConfig); // Create a WURFL Manager /* @var $wurflManager WURFL_WURFLManager */ $wurflManager = $wurflManagerFactory->create(); $this->device = $wurflManager->getDeviceForHttpRequest($_SERVER); } }
public function __construct() { require_once WURFL_DIR . 'Application.php'; /* $persistenceDir = RESOURCES_DIR.'storage/persistence'; $cacheDir = RESOURCES_DIR.'storage/cache'; */ $persistenceDir = Yii::app()->getRuntimePath() . '/WURFL/storage/persistence'; $cacheDir = Yii::app()->getRuntimePath() . '/WURFL/storage/cache'; $cacheServer = Yii::app()->cache->getServers(); $cache_host = $cacheServer[0]->host; $cache_port = $cacheServer[0]->port; $wurflConfig = new WURFL_Configuration_InMemoryConfig(); $wurflConfig->wurflFile(RESOURCES_DIR . 'wurfl.zip'); $wurflConfig->matchMode('performance'); $wurflConfig->persistence('file', array('dir' => $persistenceDir)); //$wurflConfig->cache('memcache', array('host' => $cache_host,'port'=>$cache_port, 'namespace'=>'wurfl', 'expiration' => 36000)); $wurflConfig->cache('file', array('dir' => $cacheDir, 'expiration' => 36000)); $wurflManagerFactory = new WURFL_WURFLManagerFactory($wurflConfig); $this->wurflManager = $wurflManager = $wurflManagerFactory->create(); if (isset($_REQUEST['userAgent'])) { $userAgent = $_REQUEST['userAgent']; $this->_device = $wurflManager->getDeviceForUserAgent($userAgent); } elseif (isset($_SERVER['HTTP_X_OPERAMINI_PHONE_UA'])) { $userAgent = $_SERVER['HTTP_X_OPERAMINI_PHONE_UA']; $this->_device = $wurflManager->getDeviceForUserAgent($userAgent); } else { $this->_device = $wurflManager->getDeviceForHttpRequest($_SERVER); } $this->brand = strtolower($this->_device->getCapability('brand_name')); $this->model = strtolower($this->_device->getCapability('model_name')); }
/** * Initialize WURFL * */ function wurfl_init($args = array()) { if (!isset($args['mode'])) { $args['mode'] = 'performance'; } sys::import('modules.wurfl.xarincludes.WURFL.Application'); $resourcesDir = sys::code() . 'modules/wurfl/xarincludes/resources'; $persistenceDir = $resourcesDir . '/storage/persistence'; $cacheDir = $resourcesDir . '/storage/cache'; // Create WURFL Configuration $wurflConfig = new WURFL_Configuration_InMemoryConfig(); // Set location of the WURFL File $wurflConfig->wurflFile($resourcesDir . '/wurfl.xml'); // Set the match mode for the API ('performance' or 'accuracy') $wurflConfig->matchMode($args['mode']); // Setup WURFL Persistence $wurflConfig->persistence('file', array('dir' => $persistenceDir)); // Setup Caching $wurflConfig->cache('file', array('dir' => $cacheDir, 'expiration' => 36000)); // Create a WURFL Manager Factory from the WURFL Configuration $wurflManagerFactory = new WURFL_WURFLManagerFactory($wurflConfig); // Create a WURFL Manager /* @var $wurflManager WURFL_WURFLManager */ $wurflManager = $wurflManagerFactory->create(); return $wurflManager; }
public static function setUpBeforeClass() { $resourcesDir = dirname(__FILE__) . DIRECTORY_SEPARATOR . self::RESOURCES_DIR; $config = new WURFL_Configuration_InMemoryConfig(); $config->wurflFile($resourcesDir . "/wurfl-2.0.27.zip")->wurflPatch($resourcesDir . "/web_browsers_patch.xml")->wurflPatch($resourcesDir . "/issues/nokia-patch.xml")->wurflPatch($resourcesDir . "/issues/issue-177-patch.xml"); self::$persistenceProvider = new WURFL_Storage_Memcache(); self::$persistenceProvider->clear(); $wurflManagerFactory = new WURFL_WURFLManagerFactory($config, self::$persistenceProvider); self::$wurflManager = $wurflManagerFactory->create(); }
private function makeConfig() { // Create WURFL Configuration $config = new WURFL_Configuration_InMemoryConfig(); // Set location of the WURFL File $config->wurflFile(__DIR__ . '/../../../examples/resources/wurfl.zip'); // Setup WURFL Persistence $config->persistence('memory'); // Setup Caching $config->cache('null'); return $config; }
public static function createWurflManger() { $resourcesDir = dirname(__FILE__) . DIRECTORY_SEPARATOR . self::RESOURCES_DIR; $cacheDir = dirname(__FILE__) . DIRECTORY_SEPARATOR . self::CACHE_DIR; $config = new WURFL_Configuration_InMemoryConfig(); $config->wurflFile($resourcesDir . "/wurfl-regression.xml")->wurflPatch($resourcesDir . "/web_browsers_patch.xml")->wurflPatch($resourcesDir . "/spv_patch.xml")->wurflPatch($resourcesDir . "/android_patch.xml")->wurflPatch($resourcesDir . "/new_devices.xml"); $params = array("dir" => $cacheDir, WURFL_Configuration_Config::EXPIRATION => 0); $config->persistence("file", $params); self::$persistenceStorage = new WURFL_Storage_Memory($params); self::$wurflManagerFactory = new WURFL_WURFLManagerFactory($config, self::$persistenceStorage); self::$wurflManager = self::$wurflManagerFactory->create(); }
public function setUp() { $resourcesDir = realpath(dirname(__FILE__) . DIRECTORY_SEPARATOR . "../../resources"); $config = new WURFL_Configuration_InMemoryConfig(); $config->wurflFile($resourcesDir . "/wurfl_base.xml"); // Setup WURFL Persistence $this->persistenceDir = sys_get_temp_dir() . '/api_test'; WURFL_FileUtils::mkdir($this->persistenceDir); $config->persistence('file', array('dir' => $this->persistenceDir)); // Setup Caching $config->cache('null'); $wurflManagerFactory = new WURFL_WURFLManagerFactory($config); $this->wurflManager = $wurflManagerFactory->create(); }
/** * 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; }
public static function isSmartphone() { $wurflDir = OW_DIR_LIB . 'wurfl' . DS; $resourcesDir = OW_DIR_PLUGINFILES . 'base' . DS . 'wurfl' . DS; if (defined('OW_PLUGIN_XP') && OW_PLUGIN_XP) { $resourcesDir = OW_DIR_STATIC_PLUGIN . 'base' . DS . 'wurfl' . DS; } require_once $wurflDir . 'Application.php'; $persistenceDir = $resourcesDir . 'persistence' . DS; $cacheDir = $resourcesDir . 'cache' . DS; // if ( !file_exists($wurflDir) ) // { // mkdir($wurflDir); // chmod($wurflDir, 0777); // mkdir($persistenceDir); // chmod($persistenceDir, 0777); // mkdir($cacheDir); // chmod($cacheDir, 0777); // } $wurflConfig = new WURFL_Configuration_InMemoryConfig(); $wurflConfig->wurflFile($wurflDir . 'wurfl.zip'); $wurflConfig->matchMode('accuracy'); $wurflConfig->allowReload(true); $wurflConfig->capabilityFilter(array("device_os", "device_os_version", "is_tablet", "is_wireless_device", "mobile_browser", "mobile_browser_version", "pointing_method", "preferred_markup", "resolution_height", "resolution_width", "ux_full_desktop", "xhtml_support_level")); $wurflConfig->persistence('file', array('dir' => $persistenceDir)); $wurflConfig->cache('file', array('dir' => $cacheDir, 'expiration' => 36000)); $wurflManagerFactory = new WURFL_WURFLManagerFactory($wurflConfig); $wurflManager = $wurflManagerFactory->create(); $requestingDevice = $wurflManager->getDeviceForHttpRequest($_SERVER); return filter_var($requestingDevice->getVirtualCapability('is_smartphone'), FILTER_VALIDATE_BOOLEAN); }
public static function getInfo() { $deviceId = $modelName = ""; // AMF was installed if (isset($_SERVER['AMF_ID'])) { $deviceId = isset($_SERVER['AMF_ID']) ? $_SERVER['AMF_ID'] : ""; $modelName = isset($_SERVER['AMF_MODEL_NAME']) ? $_SERVER['AMF_MODEL_NAME'] : ""; } else { if (!defined("WURFL_DIR")) { define("WURFL_DIR", Yii::getPathOfAlias("application.vendors.WURFL_CHACHA") . "/"); define("RESOURCES_DIR", WURFL_DIR . "Resources/"); } require_once WURFL_DIR . 'Application.php'; //$wurflConfigFile = RESOURCES_DIR . 'wurfl-config.xml'; //$wurflConfig = new WURFL_Configuration_XmlConfig($wurflConfigFile); $persistenceDir = RESOURCES_DIR . 'storage/persistence'; $cacheServer = Yii::app()->cache->getServers(); $cache_host = $cacheServer[0]->host; $cache_port = $cacheServer[0]->port; $wurflConfig = new WURFL_Configuration_InMemoryConfig(); $wurflConfig->wurflFile(RESOURCES_DIR . 'wurfl.zip'); $wurflConfig->matchMode('performance'); $wurflConfig->persistence('file', array('dir' => $persistenceDir)); $wurflConfig->cache('memcache', array('host' => $cache_host, 'port' => $cache_port, 'namespace' => 'wurfl', 'expiration' => 36000)); $wurflManagerFactory = new WURFL_WURFLManagerFactory($wurflConfig); $wurflManager = $wurflManagerFactory->create(); $device = $wurflManager->getDeviceForHttpRequest($_SERVER); $modelName = $device->getCapability("model_name"); if (Utils::appleDevice('iPad')) { $deviceId = 'apple_ipad_ver1_sub42'; } else { $deviceId = $device->id; } } return array('deviceId' => $deviceId, 'modelName' => $modelName); }
function load_wurfl_manager() { global $wurflManager; if (defined('_XMLREADER_INSTALLED') && _XMLREADER_INSTALLED || extension_loaded('xmlreader')) { // Init WURFL library for mobile device detection $wurflDir = _TRACK_LIB_PATH . '/wurfl/WURFL'; $resourcesDir = _TRACK_LIB_PATH . '/wurfl/resources'; require_once $wurflDir . '/Application.php'; $persistenceDir = _CACHE_COMMON_PATH . '/wurfl-persistence'; $cacheDir = _CACHE_COMMON_PATH . '/wurfl-cache'; $wurflConfig = new WURFL_Configuration_InMemoryConfig(); $wurflConfig->wurflFile(_TRACK_STATIC_PATH . '/wurfl/wurfl_1.5.3.xml'); $wurflConfig->matchMode('accuracy'); $wurflConfig->allowReload(true); $wurflConfig->persistence('file', array('dir' => $persistenceDir)); $wurflConfig->cache('file', array('dir' => $cacheDir, 'expiration' => 36000)); $wurflManagerFactory = new WURFL_WURFLManagerFactory($wurflConfig); $wurflManager = $wurflManagerFactory->create(); } }
public function testShouldCreateConfigurationForMultipleMemcacheBackend() { $config = new WURFL_Configuration_InMemoryConfig(); $params = array("host" => "10.211.55.10;10.211.55.2", "port" => "11211", "namespace" => "wurfl"); $config->wurflFile("wurfl.xml")->wurflPatch("new_web_browsers_patch.xml")->wurflPatch("spv_patch.xml")->persistence("memcache", $params); }
protected function createWurflClass() { if ($this->arguments->altClass) { $class_name = $this->arguments->altClass->value; if (class_exists($class_name, false) && is_subclass_of($class_name, 'WURFL_WURFLManager')) { $this->wurfl = new $class_name(); } else { throw new WURFL_WURFLCLIInvalidArgumentException("Error: {$class_name} must extend WURFL_WURFLManager."); } } else { $persistenceDir = RESOURCES_DIR . '/storage/persistence'; $cacheDir = RESOURCES_DIR . '/storage/cache'; // Create WURFL Configuration $wurflConfig = new WURFL_Configuration_InMemoryConfig(); // Set location of the WURFL File $wurflConfig->wurflFile(RESOURCES_DIR . '/wurfl.zip'); // Set the match mode for the API ('performance' or 'accuracy') $wurflConfig->matchMode('performance'); // Setup WURFL Persistence $wurflConfig->persistence('file', array('dir' => $persistenceDir)); // Setup Caching $wurflConfig->cache('null'); $wurflConfig->allowReload(true); // Create a WURFL Manager Factory from the WURFL Configuration $wurflManagerFactory = new WURFL_WURFLManagerFactory($wurflConfig); // Create a WURFL Manager $this->wurfl = $wurflManagerFactory->create(); } }
<?php // Enable all error logging while in development ini_set('display_errors', 'on'); error_reporting(E_ALL); $wurflDir = dirname(__FILE__) . '/../../WURFL'; $resourcesDir = dirname(__FILE__) . '/../resources'; require_once $wurflDir . '/Application.php'; $persistenceDir = $resourcesDir . '/storage/persistence'; $cacheDir = $resourcesDir . '/storage/cache'; $wurflConfig = new WURFL_Configuration_InMemoryConfig(); $wurflConfig->wurflFile($resourcesDir . '/wurfl.zip'); $wurflConfig->matchMode('performance'); $wurflConfig->persistence('file', array('dir' => $persistenceDir)); $wurflConfig->cache('file', array('dir' => $cacheDir, 'expiration' => 36000)); $wurflManagerFactory = new WURFL_WURFLManagerFactory($wurflConfig); $wurflManager = $wurflManagerFactory->create(); $wurflInfo = $wurflManager->getWURFLInfo(); define("XHTML_ADVANCED", "xhtml_advanced.php"); define("XHTML_SIMPLE", "xhtml_simple.php"); define("WML", "wml.php"); $device = $wurflManager->getDeviceForHttpRequest($_SERVER); $xhtml_lvl = $device->getCapability('xhtml_support_level'); $contentType = $device->getCapability('xhtmlmp_preferred_mime_type'); $page = getPageFromMarkup($xhtml_lvl); renderPage($page, $contentType); function getPageFromMarkup($xhtml_lvl) { /* xhtml_support_level possible values: * -1: No XHTML Support * 0: Poor XHTML Support
closedir($handle); } if (count($arr_files) == 0) { exit; } asort($arr_files); $arr_files = array_slice($arr_files, 0, $process_at_once); if (extension_loaded('xmlreader')) { // Init WURFL library for mobile device detection $wurflDir = _TRACK_LIB_PATH . '/wurfl/WURFL'; $resourcesDir = _TRACK_LIB_PATH . '/wurfl/resources'; require_once $wurflDir . '/Application.php'; $persistenceDir = _CACHE_COMMON_PATH . '/wurfl-persistence'; //$persistenceDir = dirname(__FILE__).'/cache/wurfl-persistence'; $cacheDir = _CACHE_COMMON_PATH . '/wurfl-cache'; $wurflConfig = new WURFL_Configuration_InMemoryConfig(); $wurflConfig->wurflFile(_TRACK_STATIC_PATH . '/wurfl/wurfl_1.5.3.xml'); $wurflConfig->matchMode('accuracy'); $wurflConfig->allowReload(true); $wurflConfig->persistence('file', array('dir' => $persistenceDir)); $wurflConfig->cache('file', array('dir' => $cacheDir, 'expiration' => 36000)); $wurflManagerFactory = new WURFL_WURFLManagerFactory($wurflConfig); $wurflManager = $wurflManagerFactory->create(); } //dmp($arr_files); foreach ($arr_files as $cur_file) { echo $cur_file . ' : '; $name_parts = explode('_', $cur_file); if (count($name_parts) > 2 && !empty($tracklist[$name_parts[2]]['timeshift'])) { $slave_timeshift = $tracklist[$name_parts[2]]['timeshift']; } else {
<?php define("WURFL_DIR", dirname(__FILE__) . '/../WURFL/'); define("RESOURCES_DIR", WURFL_DIR . "../examples/resources/"); require_once dirname(__FILE__) . '/../WURFL/Application.php'; $persistenceDir = RESOURCES_DIR . "storage/persistence"; $wurflConfig = new WURFL_Configuration_InMemoryConfig(); $wurflConfig->wurflFile(RESOURCES_DIR . "wurfl.zip"); $wurflConfig->persistence("file", array(WURFL_Configuration_Config::DIR => $persistenceDir)); $wurflConfig->capabilityFilter(array('is_wireless_device', 'preferred_markup', 'xhtml_support_level', 'xhtmlmp_preferred_mime_type', 'device_os', 'device_os_version', 'is_tablet', 'mobile_browser_version', 'pointing_method', 'mobile_browser', 'resolution_width')); 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); } buildPersistenceWith($wurflConfig); echo "OK";
<?php define("WURFL_DIR", dirname(__FILE__) . '/../WURFL/'); define("RESOURCES_DIR", WURFL_DIR . "../examples/resources/"); require_once WURFL_DIR . 'Application.php'; $persistenceDir = RESOURCES_DIR . "storage/persistence"; $wurflConfig = new WURFL_Configuration_InMemoryConfig(); $wurflConfig->wurflFile(RESOURCES_DIR . "wurfl.zip")->persistence("file", array(WURFL_Configuration_Config::DIR => $persistenceDir)); 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); } buildPersistenceWith($wurflConfig);
* outputs those same user agents to stadard out with * a tab char, then the detected WURFL device id. * * It is optimized for high performance batch processes. * Note that each time this script is run it will load the * WURFL file, so there will be a ~15 sec delay before the * user agents start being detected. Caching is not used * because in most environments the cost of caching is * higher than the cost of doing in-memory analysis */ function echo_stderr($message) { fputs(STDERR, $message); } $wurflDir = dirname(__FILE__) . '/../../../WURFL'; $resourcesDir = dirname(__FILE__) . '/../../resources'; require_once "{$wurflDir}/Application.php"; require_once "{$wurflDir}/Configuration/InMemoryConfig.php"; $wurflConfig = new WURFL_Configuration_InMemoryConfig(); $wurflConfig->wurflFile("{$resourcesDir}/wurfl.zip")->persistence("memory")->cache("null")->allowReload(true)->matchMode('performance'); echo_stderr("Initializing WURFL..."); $wurflManagerFactory = new WURFL_WURFLManagerFactory($wurflConfig); $wurflManager = $wurflManagerFactory->create(); echo_stderr("done\n\n"); $i = -1; while (!feof(STDIN)) { $i++; $ua = trim(fgets(STDIN, 4096)); $device = $wurflManager->getDeviceForUserAgent($ua); echo "{$ua}\t{$device->id}\n"; }
* To use the Introspector, edit this file with your production * configuration and test it in your web browser. */ if (!class_exists('WURFL_ClassLoader', false)) { require_once dirname(__FILE__) . '/../WURFL/Application.php'; } if (!isset($wurflConfig)) { /////////////////////////////////////////////////////////////// // START WURFL API CONFIGURATION // You must have a $wurflConfig variable with your WURFL API // configuration in this block so the Introspector can use it /////////////////////////////////////////////////////////////// $resourcesDir = dirname(__FILE__) . '/resources'; $persistenceDir = $resourcesDir . '/storage/persistence'; $cacheDir = $resourcesDir . '/storage/cache'; $wurflConfig = new WURFL_Configuration_InMemoryConfig(); $wurflConfig->wurflFile($resourcesDir . '/wurfl.zip'); $wurflConfig->matchMode(WURFL_Configuration_Config::MATCH_MODE_PERFORMANCE); //$wurflConfig->matchMode(WURFL_Configuration_Config::MATCH_MODE_ACCURACY); $wurflConfig->persistence('file', array('dir' => $persistenceDir)); $wurflConfig->cache('file', array('dir' => $cacheDir, 'expiration' => 36000)); /////////////////////////////////////////////////////////////// // END WURFL API CONFIGURATION // Do not edit anything below this line /////////////////////////////////////////////////////////////// } class ScientiaMobileIntrospector_Controller { protected $action; protected $http_headers = array(); protected $capabilities = array();