| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 17564 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.config.adapters.ini">
- <title>Zend_Config_Ini</title>
- <para>
- <classname>Zend_Config_Ini</classname>
- permite a los desarrolladores almacenar datos de configuración
- en un formato de datos
- <acronym>INI</acronym>
- familiar, y leer de ellos en la
- aplicación usando una sintáxis de propiedades de objetos
- anidados. El formato
- <acronym>INI</acronym>
- se especializa en proveer tanto la
- habilidad de mantener una jerarquía de claves de datos
- (data
- keys) de configuración como la de mantener una jerarquía entre
- secciones de datos de
- configuración. Las jerarquías de datos de
- configuración son provistas separando las claves
- mediante el
- carácter punto (
- "
- <emphasis>.</emphasis>
- "
- ). Una sección puede extender o heredar de otra sección
- indicando el nombre de la sección
- seguido de dos puntos (
- "
- <emphasis>:</emphasis>
- "
- ) y el nombre de la sección desde la cual se quieren heredar los
- datos.
- </para>
- <note>
- <title>parse_ini_file</title>
- <para>
- <classname>Zend_Config_Ini</classname>
- utiliza la función
- <ulink url="http://php.net/parse_ini_file">
- <methodname>parse_ini_file()</methodname>
- </ulink>
- de
- <acronym>PHP</acronym>
- . Por favor, revise esta documentación para observar
- sus comportamientos específicos, que
- se propagan a
- <classname>Zend_Config_Ini</classname>
- , tales como la forma en que los valores especiales:
- "
- <constant>TRUE</constant>
- "
- ,
- "
- <constant>FALSE</constant>
- "
- ,
- "yes"
- ,
- "no"
- , y
- <constant>NULL</constant>
- son manejados.
- </para>
- </note>
- <note>
- <title>Separador de clave</title>
- <para>
- Por defecto, el carácter separador de clave es el punto (
- "
- <emphasis>.</emphasis>
- "
- ). Puede ser reemplazado, no obstante,cambiando la clave de
- <varname>$options</varname>
- llamada
- <property>nestSeparator</property>
- al construir el objeto
- <classname>Zend_Config_Ini</classname>
- . Por ejemplo:
- <programlisting language="php"><![CDATA[
- $options['nestSeparator'] = ':';
- $config = new Zend_Config_Ini('/path/to/config.ini',
- 'pruebas',
- $options);
- ]]></programlisting>
- </para>
- </note>
- <example id="zend.config.adapters.ini.example.using">
- <title>Utilizando Zend_Config_Ini</title>
- <para>
- Este ejemplo muestra una forma de uso básica de
- <classname>Zend_Config_Ini</classname>
- para cargar datos de configuración de un archivo
- <acronym>INI</acronym>
- . En
- este ejemplo hay datos de configuración tanto para un
- sistema de producción como para
- un sistema en fase de
- pruebas. Debido a que los datos de la fase de pruebas son
- muy
- parecidos 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. Supongamos, entonces, que
- los siguientes datos de
- configuración están contenidos en
- <filename>/path/to/config.ini</filename>
- :
- :
- </para>
- <programlisting language="ini"><![CDATA[
- ; Datos de configuración de la web de producción
- [produccion]
- 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
- ; Los datos de configuración de la fase de pruebas heredan de la producción
- ; y sobreescribren valores si es necesario
- [pruebas : produccion]
- database.params.host = dev.example.com
- database.params.username = devuser
- database.params.password = devsecret
- ]]></programlisting>
- <para>
- Ahora, asuma que el desarrollador de aplicaciones necesita
- los datos de configuración de
- la etapa de pruebas del
- archivo
- <acronym>INI</acronym>
- . Resulta fácil cargar estos datos especificando
- el archivo
- <acronym>INI</acronym>
- en la sección de la etapa de pruebas:
- </para>
- <programlisting language="php"><![CDATA[
- $config = new Zend_Config_Ini('/path/to/config.ini', 'pruebas');
- echo $config->database->params->host; // muestra "dev.example.com"
- echo $config->database->params->dbname; // muestra "dbname"
- ]]></programlisting>
- </example>
- <note>
- <table id="zend.config.adapters.ini.table">
- <title>Parámetros del constructor Zend_Config_Ini</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Parámetros</entry>
- <entry>Notas</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <varname>$filename</varname>
- </entry>
- <entry>
- El archivo
- <acronym>INI</acronym>
- que se va a cargar.
- </entry>
- </row>
- <row>
- <entry>
- <varname>$section</varname>
- </entry>
- <entry>
- La [sección] contenida en el archivo
- <acronym>INI</acronym>
- que
- se va a cargar. Fijar este parámetro a
- <constant>NULL</constant>
- cargará todas las secciones.
- Alternativamente, se puede introducir un
- array de nombres de sección para cargar
- multiples secciones.
- </entry>
- </row>
- <row>
- <entry>
- <varname>$options</varname>
- (default
- <constant>FALSE</constant>
- )
- </entry>
- <entry>
- Array de opciones. Las siguientes claves
- están aceptadas:
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>
- <property>allowModifications</property>
- </emphasis>
- :
- : Fijar a
- <constant>TRUE</constant>
- para permitir modificaciones
- subsiguientes del archivo
- cargado. Por defecto es
- <constant>NULL</constant>
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property>nestSeparator</property>
- </emphasis>
- : Carácter que utilizar como
- separador de anidamiento. Por
- defecto es "."
- </para>
- </listitem>
- </itemizedlist>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </note>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|