Zend Framework
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.
Lists of User Agent chains for testing :
DEFAULT_IDENTIFICATION_SEQUENCE
= 'mobile,desktop'
'desktop' by default if the sequence return false for each item or is empty
DEFAULT_PERSISTENT_STORAGE_ADAPTER
= 'Session'
Default persitent storage adapter : Session or NonPersitent
DEFAULT_HTTP_USER_AGENT
= 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)'
Default User Agent chain to prevent empty value

array
$_browserTypeClass= 'array()'
Browser type class
Map of browser types to classes.
array()
Details
array
$_config= 'array(
'identification_sequence' => self::DEFAULT_IDENTIFICATION_SEQUENCE'
Array to store config
Default values are provided to ensure specific keys are present at instantiation.
array(
'identification_sequence' => self::DEFAULT_IDENTIFICATION_SEQUENCE
Details
bool
$_immutable= 'false'
Whether or not this instance is immutable.
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
array
$_loaderTypes= 'array('storage''
Valid plugin loader types
array('storage'
Details
array
$_matchLog= 'array()'
Trace of items matched to identify the browser type
array()
Details
__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 {@link $_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 |

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 |