TigerZF
🌐Español

21.3. Zend_Config_Ini

Zend_Config_Ini permite a los desarrolladores almacenar datos de configuración en un formato INI familiar y leerlos en la aplicación usando la sintaxis anidada de propiedades de objeto. El formato INI está especializado para proporcionar tanto la capacidad de tener una jerarquía de claves de datos de configuración como herencia entre secciones de datos de configuración. Las jerarquías de datos de configuración se admiten separando las claves con el carácter de punto ("."). Una sección puede extender o heredar de otra sección siguiendo el nombre de la sección con un carácter de dos puntos (":) y el nombre de la sección de la que se heredarán los datos.

[Note] Analizando el archivo INI

Zend_Config_Ini utiliza la función PHP parse_ini_file(). Por favor revise esta documentación para estar al tanto de sus comportamientos específicos, que se propagan a Zend_Config_Ini, como la forma en que se manejan los valores especiales de "TRUE", "FALSE", "yes", "no", y "NULL".

[Note] Separador de claves

Por defecto, el carácter separador de claves es el carácter de punto ("."). Sin embargo, esto se puede cambiar modificando la clave nestSeparator de $options al construir el objeto Zend_Config_Ini. Por ejemplo:

$options['nestSeparator'] = ':';
$config = new Zend_Config_Ini('/path/to/config.ini',
                              'staging',
                              $options);

Ejemplo 21.3. Uso de Zend_Config_Ini

Este ejemplo ilustra un uso básico de Zend_Config_Ini para cargar datos de configuración desde un archivo INI. En este ejemplo hay datos de configuración tanto para un sistema de producción como para un sistema de staging. Debido a que los datos de configuración del sistema de staging son muy similares a los de producción, la sección de staging hereda de la sección de producción. En este caso, la decisión es arbitraria y podría haberse escrito al revés, con la sección de producción heredando de la sección de staging, aunque esto podría no ser el caso en situaciones más complejas. Suponga, entonces, que los siguientes datos de configuración están contenidos en /path/to/config.ini:

; Production site configuration data
[production]
webhost                  = www.example.com
database.adapter         = pdo_mysql
database.params.host     = db.example.com
database.params.username = dbuser
database.params.password = secret
database.params.dbname   = dbname

; Staging site configuration data inherits from production and
; overrides values as necessary
[staging : production]
database.params.host     = dev.example.com
database.params.username = devuser
database.params.password = devsecret

A continuación, suponga que el desarrollador de la aplicación necesita los datos de configuración de staging del archivo INI. Es sencillo cargar estos datos especificando el archivo INI y la sección de staging:

$config = new Zend_Config_Ini('/path/to/config.ini', 'staging');

echo $config->database->params->host;   // prints "dev.example.com"
echo $config->database->params->dbname; // prints "dbname"

[Note] Nota

Tabla 21.1. Parámetros del constructor de Zend_Config_Ini

Parámetro Notas
$filename El archivo INI a cargar.
$section La [sección] dentro del archivo INI que se va a cargar. Establecer este parámetro en NULL cargará todas las secciones. Alternativamente, se puede proporcionar un array de nombres de sección para cargar múltiples secciones.
$options (por defecto FALSE) Array de opciones. Se admiten las siguientes claves:
  • allowModifications: Establezca en TRUE para permitir la modificación posterior de los datos de configuración cargados en memoria. Por defecto es NULL

  • nestSeparator: Establezca el carácter que se usará como separador de anidamiento. Por defecto es "."