NOTE : If you want to contribute don't hesitate, I'll review any PR.
ZF2 Browscap is a Zend Framework 2 module that provides an improved get_browser function. This module could be standalone if "browscap" configuration setting in php.ini is undefined or does not point to the correct location of the browscap.ini file.
If you wish to contribute to ZF2 Browscap, please read both the CONTRIBUTING.md file.
- Zend Framework 2 (2.*)
- Install browscap by cloning it into
./vendor/
. - Clone this project into your
./vendor/
directory.
-
Add this project in your composer.json:
"require": { "neilime/zf2-browscap": "dev-master" }
-
Now tell composer to download ZF2 Browscap by running the command:
$ php composer.phar update
-
Enabling it in your
application.config.php
file.<?php return array( 'modules' => array( // ... 'Neilime\Browscap', ), // ... );
- string
browscap_ini_path
: (optionnal) only needed if the native php function get_browser is unavailable or ifallows_native_get_browser
option is set to false. Define the browscap.ini file path (allows locale or remote file) - Zend\Cache\Storage\StorageInterface|string|array
cache
: (optionnal) Define the cache storage adapter to store parsed browscap.ini.
Allows classname and service retrieving anZend\Cache\Storage\StorageInterface
, or an array to be use withZend\Cache\StorageFactory::factory
. This not only saves you from loading and parsing the "browscap.ini" each time, but also guarantees an optimized loading procedure. - boolean
allows_native_get_browser
: Define if the native php function get_browser could be used if it's available.
ZF2 Browscap module provides a service, helper for views and plugin for controllers
-
Call Browscap with the service manager
/* @var $serviceManager \Zend\ServiceManager\ServiceLocatorInterface */ $browscap = $serviceManager->get('BrowscapService'); //Retrieve "\Neilime\Browscap\BrowscapService" object var_dump($browscap->getBrowser()); //Display an object which will contain various data elements representing, for instance, the browser's major and minor version numbers and ID string;
-
Call Browscap in a controller "get_browser" plugin expects the same params as the native php function get_browser.
$browscap = $this->get_browser(); //Retrieve an object echo $browscap->parent; $browscap = $this->get_browser(null,true); //Retrieve an array echo $browscap['parent']; $browscap = $this->get_browser( \Zend\Http\Header\UserAgent::fromString('User-Agent: Mozilla/5.0 (Linux; Android 4.0.4; Desire HD Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19') ); //Retrieve an object with an arbitrary user agent echo $browscap->parent;
-
Call Browscap in a view "get_browser" helper expects the same params as the native php function get_browser.
$browscap = $this->get_browser(); //Retrieve an object echo $browscap->parent; $browscap = $this->get_browser(null,true); //Retrieve an array echo $browscap['parent']; $browscap = $this->get_browser( \Zend\Http\Header\UserAgent::fromString('User-Agent: Mozilla/5.0 (Linux; Android 4.0.4; Desire HD Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19') ); //Retrieve an object with an arbitrary user agent echo $browscap->parent;
ZF2 Browscap provides console tools.
Load & parse "browscap.ini" file (or update cached browscap.ini)
php public/index.php load-browscap