protected function _loadFeaturesAdapter()
{
$config = $this->_config;
$browserType = $this->getType();
if (!isset($config[$browserType]) || !isset($config[$browserType]['features'])) {
return array();
}
$config = $config[$browserType]['features'];
if (empty($config['classname'])) {
require_once 'Zend/Http/UserAgent/Exception.php';
throw new Zend_Http_UserAgent_Exception('The ' . $this->getType() . ' features adapter must have a "classname" config parameter defined');
}
$className = $config['classname'];
if (!class_exists($className)) {
if (isset($config['path'])) {
$path = $config['path'];
} else {
require_once 'Zend/Http/UserAgent/Exception.php';
throw new Zend_Http_UserAgent_Exception('The ' . $this->getType() . ' features adapter must have a "path" config parameter defined');
}
if (false === (include_once $path)) {
require_once 'Zend/Http/UserAgent/Exception.php';
throw new Zend_Http_UserAgent_Exception('The ' . $this->getType() . ' features adapter path that does not exist');
}
}
return call_user_func(array($className, 'getFromRequest'), $this->_server, $this->_config);
}