TigerZF
🌐Español

72.6. Extendiendo y configurando Zend_Tool_Framework

72.6.1. Personalización del cliente de consola de Zend_Tool

Desde Zend Framework 1.9, Zend_Tool_Framework permite a los desarrolladores almacenar información, valores de configuración específicos del proveedor, y archivos personalizados en una ubicación especial en la máquina del desarrollador. Estos valores de configuración y archivos pueden ser usados por los proveedores para extender funcionalidad, personalizar funcionalidad, o cualquier otro motivo que un proveedor considere adecuado.

El propósito principal, y el propósito más utilizado inmediatamente por los proveedores existentes, es permitir a los desarrolladores personalizar la forma en que los proveedores "listos para usar" realizan su trabajo.

Una de las funcionalidades más solicitadas es poder proporcionar perfiles de proyecto personalizados al proveedor de proyectos de Zend_Tool_Project. Esto permitiría a los desarrolladores almacenar un perfil personalizado en un lugar especial que puede ser usado repetidamente por el sistema Zend_Tool para construir perfiles personalizados. Otra funcionalidad comúnmente solicitada es poder configurar el comportamiento de los proveedores con un ajuste de configuración. Para lograr esto, no solo necesitamos tener un archivo de configuración de Zend_Tool, sino que también necesitamos tener un lugar donde encontrar este archivo de configuración.

72.6.1.1. El directorio de inicio

Antes de que el cliente de consola pueda comenzar a buscar un archivo de configuración de Zend_Tool o un directorio de almacenamiento local, primero debe poder identificar dónde se encuentra el "directorio de inicio".

En máquinas basadas en *nix, PHP tendrá disponible una variable de entorno llamada HOME con una ruta al directorio de inicio del usuario actual. Típicamente, esta ruta será muy similar a /home/miusuario.

En máquinas basadas en Windows, PHP típicamente tendrá disponible una variable de entorno llamada HOMEPATH con el directorio de inicio del usuario actual. Este directorio se encuentra usualmente en C:\Documents and Settings\Username\, o en Vista en C:\Users\Username.

Si no se puede encontrar un directorio de inicio, o si desea cambiar la ubicación en la que el cliente de consola de Zend_Tool_Framework encuentra el directorio de inicio, puede proporcionar una variable de entorno llamada ZF_HOME para especificar dónde encontrar el directorio de inicio.

72.6.1.2. Almacenamiento local

Una vez que se puede localizar un directorio de inicio, el cliente de consola de Zend_Tool_Framework puede autodescubrir el directorio de almacenamiento local, o puede indicársele dónde esperar el directorio de almacenamiento local.

Suponiendo que se ha encontrado el directorio de inicio (aquí denotado como $HOME), el cliente de consola buscará entonces el directorio de almacenamiento local en $HOME/.zf/. Si se encuentra, establecerá el directorio de almacenamiento local en esta ubicación.

Si no se puede encontrar el directorio, o el desarrollador desea sobrescribir esta ubicación, esto se puede hacer estableciendo una variable de entorno. Independientemente de si $HOME se ha establecido previamente o no, el desarrollador puede proporcionar la variable de entorno ZF_STORAGE_DIR.

Una vez que se encuentra la ruta a un directorio de almacenamiento local, el directorio debe existir para que pueda pasarse al entorno de ejecución de Zend_Tool_Framework, ya que no se creará por usted.

72.6.1.3. Configuración del usuario

Al igual que con el almacenamiento local, una vez que se puede localizar un directorio de inicio, el cliente de consola de Zend_Tool_Framework puede entonces intentar autodescubrir la ruta a un archivo de configuración, o puede indicársele específicamente dónde encontrar el archivo de configuración.

Suponiendo que se ha encontrado el directorio de inicio (aquí denotado como $HOME), el cliente de consola intentará entonces buscar la existencia de un archivo de configuración ubicado en $HOME/.zf.ini. Este archivo, si se encuentra, se usará como el archivo de configuración para Zend_Tool_Framework.

Si esa ubicación no existe, pero sí existe un directorio de almacenamiento local, entonces el cliente de consola intentará localizar el archivo de configuración dentro del directorio de almacenamiento local. Suponiendo que el directorio de almacenamiento local existe en $LOCAL_STORAGE, entonces si existe un archivo como $LOCAL_STORAGE/zf.ini, será encontrado por el cliente de consola y utilizado como el archivo de configuración de Zend_Tool_Framework.

Si el archivo no puede ser autodescubierto o el desarrollador desea especificar la ubicación del archivo de configuración, el desarrollador puede hacerlo estableciendo una variable de entorno. Si se establece la variable de entorno ZF_CONFIG_FILE, entonces su valor se usará como la ubicación del archivo de configuración a usar con el cliente de consola. La variable ZF_CONFIG_FILE puede apuntar a cualquier archivo INI, XML o PHP legible por Zend_Config.

Si el archivo no existe ni en la ubicación autodescubierta ni en la proporcionada, no se usará, ya que Zend_Tool_Framework no intenta crear el archivo automáticamente.

72.6.1.4. Contenido del archivo de configuración del usuario

El archivo de configuración debe estructurarse como un archivo de configuración de Zend_Config, en formato INI, y sin que se definan secciones. Las claves de primer nivel deben ser usadas por el proveedor que busca un valor específico. Por ejemplo, si el proveedor "Project" espera un directorio "profiles", entonces típicamente se entenderá que buscará el siguiente par clave-valor INI:

project.profile = some/path/to/some-directory

El único prefijo INI reservado es el valor "php". El prefijo "php" para los valores se reserva para almacenar nombres y valores de configuraciones de PHP ajustables en tiempo de ejecución, como include_path o error_reporting. Para sobrescribir include_path y error_reporting con un valor INI, un desarrollador establecería:

php.include_path = "/path/to/includes1:/path/to/includes2"
php.error_reporting = 1
[Important] Importante

El prefijo reservado "php" solo funciona con archivos INI. No puede establecer valores INI de PHP con configuración PHP o XML.