Http/UserAgent.php
LICENSE
This source file is subject to the new BSD license that is bundled with this package in the file LICENSE.txt. It is also available through the world-wide-web at this URL: http://framework.zend.com/license/new-bsd If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email to license@zend.com so we can send you a copy immediately.
- Category
- Zend
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
- Package
- Zend_Http_UserAgent
- Subpackage
- UserAgent
\Zend_Http_UserAgent
- http://www.useragentstring.com/layout/useragentstring.php
- http://user-agent-string.info/list-of-ua
- http://www.user-agents.org/allagents.xml
- http://en.wikipedia.org/wiki/List_of_user_agents_for_mobile_phones
- http://www.mobilemultimedia.be/fr/
- Implements
- Category
- Zend
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
Constants

DEFAULT_IDENTIFICATION_SEQUENCE
= 'mobile,desktop'

DEFAULT_PERSISTENT_STORAGE_ADAPTER
= 'Session'

DEFAULT_HTTP_USER_AGENT
= 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)'
Properties


array $_browserTypeClass = array()
Map of browser types to classes.
array()
Details- Type
- array


array $_config = array('identification_sequence' => self::DEFAULT_IDENTIFICATION_SEQUENCE, 'storage' => array('adapter' => self::DEFAULT_PERSISTENT_STORAGE_ADAPTER))
Default values are provided to ensure specific keys are present at instantiation.
array('identification_sequence' => self::DEFAULT_IDENTIFICATION_SEQUENCE, 'storage' => array('adapter' => self::DEFAULT_PERSISTENT_STORAGE_ADAPTER))
Details- Type
- array


bool $_immutable = false
If true, none of the following may be modified: - $_server - $_browserType - User-Agent (defined in $_server) - HTTP Accept value (defined in $_server) - $_storage
false
Details- Type
- bool


array $_loaderTypes = array('storage', 'device')
array('storage', 'device')
Details- Type
- array


array $_matchLog = array()
array()
Details- Type
- array
Methods


__construct(null | array | \Zend_Config | \ArrayAccess $options = null) : void
Constructor
Name | Type | Description |
---|---|---|
$options | null | array | \Zend_Config | \ArrayAccess |


_getUserAgentDevice(string $browserType) : string
Loads class for a user agent device
Name | Type | Description |
---|---|---|
$browserType | string | Browser type |
Type | Description |
---|---|
string |
Exception | Description |
---|---|
\Zend_Loader_PluginLoader_Exception | if unable to load UA device |


_match(string $deviceClass) : bool
Comparison of the UserAgent chain and browser signatures.
The comparison is case-insensitive : the browser signatures must be in lower case
Name | Type | Description |
---|---|---|
$deviceClass | string | Name of class against which a match will be attempted |
Type | Description |
---|---|
bool |


_matchUserAgent() : \Zend_Http_UserAgent_Result
Run the identification sequence to match the right browser type according to the user agent
Type | Description |
---|---|
\Zend_Http_UserAgent_Result |


_validateLoaderType(string $type) : string
Validate a plugin loader type
Verifies that it is in $_loaderTypes, and returns a normalized version of the type.
Name | Type | Description |
---|---|---|
$type | string |
Type | Description |
---|---|
string |
Exception | Description |
---|---|
\Zend_Http_UserAgent_Exception | on invalid type |


clearStorage(string $browser = null) : void
Clean the persistent storage
Name | Type | Description |
---|---|---|
$browser | string | Browser identifier (User Agent chain) |


getDevice() : \Zend_Http_UserAgent_Device
Returns the device object
This is the object that will contain the various discovered device capabilities.
Type | Description |
---|---|
\Zend_Http_UserAgent_Device | $device |


getHttpAccept(string $httpAccept = null) : string
Returns the HTTP Accept server param
Name | Type | Description |
---|---|---|
$httpAccept | string | (option) forced HTTP Accept chain |
Type | Description |
---|---|
string |


getPluginLoader(string $type) : \Zend_Loader_PluginLoader
Get a plugin loader
Name | Type | Description |
---|---|---|
$type | string | A valid plugin loader type; see {@link $_loaderTypes} |
Type | Description |
---|---|
\Zend_Loader_PluginLoader |


getServer() : array
Retrieve the "$_SERVER" array
Basically, the $_SERVER array or an equivalent container storing the data that will be introspected.
If the value has not been previously set, it sets itself from the $_SERVER superglobal.
Type | Description |
---|---|
array |


getServerValue(string $key) : mixed
Retrieve a server value
Name | Type | Description |
---|---|---|
$key | string |
Type | Description |
---|---|
mixed |


getStorage(string $browser = null) : \Zend_Http_UserAgent_Storage
Returns the persistent storage handler
Session storage is used by default unless a different storage adapter has been set via the "persistent_storage_adapter" key. That key should contain either a fully qualified class name, or a short name that resolves via the plugin loader.
Name | Type | Description |
---|---|---|
$browser | string | Browser identifier (User Agent chain) |
Type | Description |
---|---|
\Zend_Http_UserAgent_Storage |


getUserAgent() : string
Returns the User Agent value
If $userAgent param is null, the value of $_server['HTTP_USER_AGENT'] is returned.
Type | Description |
---|---|
string |


setBrowserType(string $browserType) : \Zend_Http_UserAgent
Set the browser "type"
Name | Type | Description |
---|---|---|
$browserType | string |
Type | Description |
---|---|
\Zend_Http_UserAgent |


setConfig(mixed $config = array()) : \Zend_Http_UserAgent
Config parameters is an Array or a Zend_Config object
The allowed parameters are : - the identification sequence (can be empty) => desktop browser type is the default browser type returned $config['identification_sequence'] : ',' separated browser types - the persistent storage adapter $config['persistent_storage_adapter'] = "Session" or "NonPersistent" - to add or replace a browser type device $config[(type)]['device']['path'] $config[(type)]['device']['classname'] - to add or replace a browser type features adapter $config[(type)]['features']['path'] $config[(type)]['features']['classname']
Name | Type | Description |
---|---|---|
$config | mixed | (option) Config array |
Type | Description |
---|---|
\Zend_Http_UserAgent |


setHttpAccept(string $httpAccept) : \Zend_Http_UserAgent
Force or replace the HTTP_ACCEPT chain in self::$_server variable
Name | Type | Description |
---|---|---|
$httpAccept | string | Forced HTTP Accept chain |
Type | Description |
---|---|
\Zend_Http_UserAgent |


setOptions(array | \Zend_Config | \ArrayAccess $options) : \Zend_Http_UserAgent
Configure instance
Name | Type | Description |
---|---|---|
$options | array | \Zend_Config | \ArrayAccess |
Type | Description |
---|---|
\Zend_Http_UserAgent |


setPluginLoader(string $type, string | \Zend_Loader_PluginLoader $loader) : \Zend_Http_UserAgent
Set plugin loader
Name | Type | Description |
---|---|---|
$type | string | Type of plugin loader; one of 'storage', (?) |
$loader | string | \Zend_Loader_PluginLoader |
Type | Description |
---|---|
\Zend_Http_UserAgent |


setServer(array | \ArrayAccess $server) : void
Set the "$_SERVER" array
Basically, the $_SERVER array or an equivalent container storing the data that will be introspected.
Name | Type | Description |
---|---|---|
$server | array | \ArrayAccess |
Exception | Description |
---|---|
\Zend_Http_UserAgent_Exception | on invalid parameter |


setServerValue(string | int | float $key, mixed $value) : void
Set a server value
Name | Type | Description |
---|---|---|
$key | string | int | float | |
$value | mixed |


setStorage(\Zend_Http_UserAgent_Storage $storage) : \Zend_Http_UserAgent
Sets the persistent storage handler
Name | Type | Description |
---|---|---|
$storage | \Zend_Http_UserAgent_Storage |
Type | Description |
---|---|
\Zend_Http_UserAgent |


setUserAgent(string $userAgent) : \Zend_Http_UserAgent
Force or replace the UA chain in $_server variable
Name | Type | Description |
---|---|---|
$userAgent | string | Forced UserAgent chain |
Type | Description |
---|---|
\Zend_Http_UserAgent |