Browscap es un proyecto abierto
dedicado a recopilar y difundir una "base de datos" de capacidades de navegadores --
en realidad un conjunto de diferentes archivos que describen las capacidades de los navegadores. PHP tiene soporte
incorporado para usar estos archivos mediante la función get_browser().
Esta función requiere que su php.ini proporcione una
entrada browscap que apunte al archivo específico de PHP
php_browscap.ini, que puede descargar desde
el sitio de browscap.
Esta clase proporciona un adaptador
de funciones que llama a get_browser() para
descubrir las capacidades de dispositivos móviles e inyectarlas en las instancias de dispositivo
UserAgent.
Primero, si aún no lo ha hecho, descargue el
archivo php_browscap.ini y colóquelo en algún lugar al que su servidor web pueda acceder;
asegúrese de que el servidor web tenga permisos para leer el archivo. Normalmente, lo colocará
en la misma ubicación que su archivo php.ini.
A continuación, actualice su archivo php.ini para añadir la siguiente línea:
browscap = /path/to/php_browscap.ini
![]() |
Manténgalo simple |
|---|---|
Si coloca su archivo |
A continuación, simplemente proporcione la configuración a su aplicación de la siguiente manera:
resources.useragent.mobile.features.classname = "Zend_Http_UserAgent_Device_Features_Browscap"
Llegados a este punto, ya está todo listo. Puede acceder a la información del navegador de varias maneras. Desde la parte MVC de su aplicación, puede acceder a ella a través del bootstrap. Dentro de los plugins, esto se hace obteniendo el bootstrap desde el front controller.
$bootstrap = Zend_Controller_Front::getInstance()->getParam('bootstrap');
$userAgent = $bootstrap->getResource('useragent');
Desde su controlador de acción, use getInvokeArg() para obtener el
bootstrap, y desde ahí, el objeto user agent.
$bootstrap = $this->getInvokeArg('bootstrap');
$userAgent = $bootstrap->getResource('useragent');
Dentro de su vista, puede obtenerlo usando el ayudante de vista (view helper) UserAgent.
$userAgent = $this->userAgent();
Una vez que tenga el objeto user agent, puede consultarlo para conocer diferentes capacidades. Como ejemplo, puede que desee usar un script de layout alternativo en función de las capacidades del user agent.
$device = $userAgent->getDevice();
$cssSupport = $device->getFeature('cssversion');
$jsSupport = $device->getFeature('javascript');
switch (true) {
case ($jsSupport && $cssSupport >= 3):
$layout->setLayout('layout-html5');
break;
case ($jsSupport && $cssSupport < 3):
$layout->setLayout('layout-xhtml');
break;
case (!$jsSupport && $cssSupport < 3):
$layout->setLayout('layout-html-transitional');
break;
default:
$layout->setLayout('layout-web-1');
break;
}
![[Note]](images/note.png)