Los datos de configuración se ponen a disposición del constructor de Zend_Config
a través de un array asociativo, que puede ser multidimensional, con el fin de apoyar
la organización de los datos de lo general a lo específico. Las clases adaptadoras concretas
adaptan los datos de configuración desde el almacenamiento para producir el array asociativo
para el constructor de Zend_Config. Los scripts de usuario pueden proporcionar dichos arrays
directamente al constructor de Zend_Config, sin usar una clase
adaptadora, ya que puede ser apropiado hacerlo en ciertas situaciones.
Cada valor del array de datos de configuración se convierte en una propiedad del
objeto Zend_Config. La clave se utiliza como el nombre de la propiedad. Si un valor
es en sí mismo un array, entonces la propiedad del objeto resultante se crea como un nuevo
objeto Zend_Config, cargado con los datos del array. Esto ocurre
de forma recursiva, de manera que se puede crear una jerarquía de datos de configuración con cualquier número de
niveles.
Zend_Config implementa las interfaces Countable y
Iterator con el fin de facilitar el acceso sencillo a los
datos de configuración. Así, se puede utilizar la
función count()
y construcciones de PHP como
foreach con
objetos Zend_Config.
Por defecto, los datos de configuración disponibles a través de Zend_Config son
de solo lectura, y una asignación (por ejemplo,
$config->database->host = 'example.com';)
da como resultado una excepción lanzada. Este comportamiento por defecto puede ser anulado a través del
constructor, sin embargo, para permitir la modificación de los valores de datos. Además, cuando se permiten
modificaciones, Zend_Config admite la eliminación de valores (es decir,
unset($config->database->host)). El método
readOnly() se puede utilizar para determinar si se permiten modificaciones a un
determinado objeto Zend_Config, y el método
setReadOnly() se puede utilizar para detener cualquier modificación posterior
de un objeto Zend_Config que fue creado permitiendo modificaciones.
![]() |
Nota |
|---|---|
Es importante no confundir estas modificaciones en memoria con el guardado de los
datos de configuración en un medio de almacenamiento específico. Las herramientas para crear y modificar
datos de configuración para varios medios de almacenamiento están fuera del alcance de
|
Las clases adaptadoras heredan de la clase Zend_Config, ya que utilizan
su funcionalidad.
La familia de clases Zend_Config permite organizar los datos de configuración
en secciones. Los objetos adaptadores de Zend_Config pueden cargarse
con una única sección especificada, varias secciones especificadas, o todas las secciones
(si no se especifica ninguna).
Las clases adaptadoras de Zend_Config admiten un modelo de herencia simple que
permite que los datos de configuración se hereden de una sección de datos de configuración
a otra. Esto se proporciona con el fin de reducir o eliminar la necesidad de
duplicar datos de configuración para diferentes propósitos. Una sección heredera
también puede sobrescribir los valores que hereda a través de su sección padre.
Al igual que la herencia de clases de PHP, una sección puede heredar de una sección padre,
que a su vez puede heredar de una sección abuela, y así sucesivamente, pero la herencia múltiple
(es decir, la sección C heredando directamente de las secciones padre A y B) no está soportada.
Si tiene dos objetos Zend_Config, puede combinarlos en un único
objeto usando la función merge(). Por ejemplo, dados
$config y $localConfig, puede combinar los datos de
$localConfig en $config usando
$config->merge($localConfig);. Los elementos en
$localConfig sobrescribirán cualquier elemento con el mismo nombre en
$config.
![]() |
Nota |
|---|---|
El objeto |
![[Note]](images/note.png)