Zend_Config_Xml
Zend_Config_Xml permite a los desarrolladores almacenar
datos de configuración en un formato sencillo XML y leerlos a través de
una sintáxis de propiedades de objetos anidados. El elemento raíz del
archivo XML es irrelevante y puede ser nombrado arbitrariamente.
El primer nivel de elementos XML corresponde con las secciones de datos
de configuración. El formato XML admite organización jerárquica a
través del anidamiento de elementos XML bajo los elementos a nivel de
sección. El contenido de un elemento XML a nivel de hoja corresponde al
valor de un dato de configuración. La herencia de sección está permitida
por un atributo XML especial llamado extends, y el valor de
este atributo se corresponde con la sección de la cual los datos son
heredados por la sección extendida..
Tipo devuelto
Los datos de configuración que se leen en Zend_Config_Xml
son siempre devueltos como strings.
La conversión de datos de string a otros tipos se deja en manos de los
desarrolladores para que se ajuste a sus necesidades particulares.
Usando Zend_Config_Xml
Este ejemplo ilustra un uso básico de Zend_Config_Xml
para cargar datos de configuración de un archivo XML. En este ejemplo
hay datos de configuración tanto para un sistema de producción como
para un sistema de pruebas. Debido a que los datos de configuración del
sistema de pruebas son muy similares a los de producción, la sección de
pruebas hereda de la sección de producción. En este caso, la decisión
es arbitraria y podría haberse escrito a la inversa, con la sección de
producción heredando de la sección de pruebas, a pesar de que éste no
sería el caso para situaciones más complejas. Suponga, pues, que los
datos de configuración siguientes están contenidos
en /ruta/de/config.xml:
www.example.com
pdo_mysql
db.example.com
dbuser
secret
dbname
dev.example.com
devuser
devsecret
]]>
Ahora, asuma que el desarrollador de aplicaciones necesita los datos
de configuración de la fase de pruebas del archivo XML. Es una tarea
sencilla cargar estos datos, especificando el archivo XML y la
sección de pruebas:
database->params->host; // muestra "dev.example.com"
echo $config->database->params->dbname; // muestra "dbname"
]]>
Usando atributos de etiqueta en Zend_Config_Xml
Zend_Config_Xml también soporta dos formas adicionales de definir
nodos en la configuración. Ambas hacen uso de atributos. Dado que
los atributos extends y value son palabras
reservadas (la última por la segunda manera de usar atributos),
pueden no ser utilizadas.
La primera manera de utilizar atributos es añadir atributos en un
nodo padre, el cual será interpretado como hijo de ese nodo:
]]>
La otra forma no reduce la configuración, sino que permite mantenerla de
forma más fácil dado que no es necesario escribir el nombre de la
etiqueta dos veces. Simplemente, cree una etiqueta vacía con el valor en
el atributo value:
www.example.com
]]>
XML strings
Zend_Config_Xml is able to load an XML string directly,
such as that retrieved from a database. The string is passed
as the first parameter to the constructor and must start with the
characters '<?xml':
EOT;
$config = new Zend_Config_Xml($string, 'staging');
]]>