| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- <?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:
- </para>
- <programlisting language="php"><![CDATA[
- $options['nestSeparator'] = ':';
- $config = new Zend_Config_Ini('/path/to/config.ini',
- 'pruebas',
- $options);
- ]]></programlisting>
- </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>
|