Tabla de contenidos
Zend_Config está diseñado para simplificar el acceso a, y el uso de,
los datos de configuración dentro de las aplicaciones. Proporciona una interfaz de usuario basada en
propiedades de objetos anidados para acceder a estos datos de configuración dentro del código de la
aplicación. Los datos de configuración pueden provenir de una variedad de medios que admiten
almacenamiento de datos jerárquico. Actualmente
Zend_Config proporciona adaptadores para datos de configuración almacenados
en archivos de texto con Zend_Config_Ini y
Zend_Config_Xml.
Ejemplo 21.1. Uso de Zend_Config
Normalmente se espera que los usuarios utilicen una de las clases adaptadoras como Zend_Config_Ini o
Zend_Config_Xml,
pero si los datos de configuración están disponibles en un array PHP, se puede
simplemente pasar los datos al constructor de Zend_Config para
utilizar una interfaz orientada a objetos sencilla:
// Given an array of configuration data
$configArray = array(
'webhost' => 'www.example.com',
'database' => array(
'adapter' => 'pdo_mysql',
'params' => array(
'host' => 'db.example.com',
'username' => 'dbuser',
'password' => 'secret',
'dbname' => 'mydatabase'
)
)
);
// Create the object-oriented wrapper upon the configuration data
$config = new Zend_Config($configArray);
// Print a configuration datum (results in 'www.example.com')
echo $config->webhost;
// Use the configuration data to connect to the database
$db = Zend_Db::factory($config->database->adapter,
$config->database->params->toArray());
// Alternative usage: simply pass the Zend_Config object.
// The Zend_Db factory knows how to interpret it.
$db = Zend_Db::factory($config->database);
Como se ilustra en el ejemplo anterior, Zend_Config proporciona una
sintaxis de propiedades de objetos anidados para acceder a los datos de configuración pasados a su
constructor.
Junto con el acceso orientado a objetos a los valores de datos,
Zend_Config también tiene get(), que
devolverá el valor por defecto suministrado si el elemento de datos no existe. Por ejemplo:
$host = $config->database->get('host', 'localhost');
Ejemplo 21.2. Uso de Zend_Config con un archivo de configuración PHP
A menudo es deseable utilizar un archivo de configuración puramente basado en PHP. El siguiente código ilustra lo fácil que resulta lograrlo:
// config.php
return array(
'webhost' => 'www.example.com',
'database' => array(
'adapter' => 'pdo_mysql',
'params' => array(
'host' => 'db.example.com',
'username' => 'dbuser',
'password' => 'secret',
'dbname' => 'mydatabase'
)
)
);
// Configuration consumption $config = new Zend_Config(require 'config.php'); // Print a configuration datum (results in 'www.example.com') echo $config->webhost;