TigerZF
🌐Español

38.9. El adaptador de funciones de UserAgent Browscap

38.9.1. Resumen

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.

[Note] Puede que necesite reiniciar su servidor web

La configuración browscap de php.ini es una configuración PHP_INI_SYSTEM, lo que significa que solo se puede establecer en su archivo php.ini o en la configuración de su servidor web. Por ello, puede que necesite reiniciar su servidor web después de añadir la entrada.

38.9.2. Inicio rápido

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
[Note] Manténgalo simple

Si coloca su archivo php_browscap.ini junto al archivo php.ini, puede omitir la información de ruta y simplemente especificar el nombre del 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;
}

38.9.3. Opciones de configuración

El adaptador browscap no tiene opciones de configuración.

38.9.4. Métodos disponibles

getFromRequest(array $request, array $config);

Descompone la petición para devolver un array de capacidades del dispositivo.