Zend_Config_Ini.xml 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 17564 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.config.adapters.ini">
  5. <title>Zend_Config_Ini</title>
  6. <para>
  7. <classname>Zend_Config_Ini</classname> permite a los desarrolladores
  8. almacenar datos de configuración en un formato de datos
  9. <acronym>INI</acronym> familiar, y leer de ellos en la aplicación
  10. usando una sintáxis de propiedades de objetos anidados. El formato
  11. <acronym>INI</acronym> se especializa en proveer tanto la habilidad
  12. de mantener una jerarquía de claves de datos (data keys) de
  13. configuración como la de mantener una jerarquía entre secciones de datos
  14. de configuración. Las jerarquías de datos de configuración son provistas
  15. separando las claves mediante el carácter punto ( "
  16. <emphasis>.</emphasis> " ). Una sección puede extender o heredar de
  17. otra sección indicando el nombre de la sección seguido de dos puntos ( "
  18. <emphasis>:</emphasis> " ) y el nombre de la sección desde la cual
  19. se quieren heredar los datos. </para>
  20. <note>
  21. <title>parse_ini_file</title>
  22. <para>
  23. <classname>Zend_Config_Ini</classname> utiliza la función <ulink
  24. url="http://php.net/parse_ini_file">
  25. <methodname>parse_ini_file()</methodname>
  26. </ulink> de <acronym>PHP</acronym> . Por favor, revise esta
  27. documentación para observar sus comportamientos específicos, que se
  28. propagan a <classname>Zend_Config_Ini</classname> , tales como la
  29. forma en que los valores especiales: " <constant>TRUE</constant> " ,
  30. " <constant>FALSE</constant> " , "yes" , "no" , y
  31. <constant>NULL</constant> son manejados. </para>
  32. </note>
  33. <note>
  34. <title>Separador de clave</title>
  35. <para> Por defecto, el carácter separador de clave es el punto ( "
  36. <emphasis>.</emphasis> " ). Puede ser reemplazado, no
  37. obstante,cambiando la clave de <varname>$options</varname> llamada
  38. <property>nestSeparator</property> al construir el objeto
  39. <classname>Zend_Config_Ini</classname> . Por ejemplo:
  40. </para>
  41. <programlisting language="php"><![CDATA[
  42. $options['nestSeparator'] = ':';
  43. $config = new Zend_Config_Ini('/path/to/config.ini',
  44. 'pruebas',
  45. $options);
  46. ]]></programlisting>
  47. </note>
  48. <example id="zend.config.adapters.ini.example.using">
  49. <title>Utilizando Zend_Config_Ini</title>
  50. <para> Este ejemplo muestra una forma de uso básica de
  51. <classname>Zend_Config_Ini</classname> para cargar datos de
  52. configuración de un archivo <acronym>INI</acronym> . En este ejemplo
  53. hay datos de configuración tanto para un sistema de producción como
  54. para un sistema en fase de pruebas. Debido a que los datos de la
  55. fase de pruebas son muy parecidos a los de producción, la sección de
  56. pruebas hereda de la sección de producción. En este caso, la
  57. decisión es arbitraria y podría haberse escrito a la inversa, con la
  58. sección de producción heredando de la sección de pruebas, a pesar de
  59. que éste no sería el caso para situaciones más complejas.
  60. Supongamos, entonces, que los siguientes datos de configuración
  61. están contenidos en <filename>/path/to/config.ini</filename> : : </para>
  62. <programlisting language="ini"><![CDATA[
  63. ; Datos de configuración de la web de producción
  64. [produccion]
  65. webhost = www.example.com
  66. database.adapter = pdo_mysql
  67. database.params.host = db.example.com
  68. database.params.username = dbuser
  69. database.params.password = secret
  70. database.params.dbname = dbname
  71. ; Los datos de configuración de la fase de pruebas heredan de la producción
  72. ; y sobreescribren valores si es necesario
  73. [pruebas : produccion]
  74. database.params.host = dev.example.com
  75. database.params.username = devuser
  76. database.params.password = devsecret
  77. ]]></programlisting>
  78. <para> Ahora, asuma que el desarrollador de aplicaciones necesita los
  79. datos de configuración de la etapa de pruebas del archivo
  80. <acronym>INI</acronym> . Resulta fácil cargar estos datos
  81. especificando el archivo <acronym>INI</acronym> en la sección de la
  82. etapa de pruebas: </para>
  83. <programlisting language="php"><![CDATA[
  84. $config = new Zend_Config_Ini('/path/to/config.ini', 'pruebas');
  85. echo $config->database->params->host; // muestra "dev.example.com"
  86. echo $config->database->params->dbname; // muestra "dbname"
  87. ]]></programlisting>
  88. </example>
  89. <note>
  90. <table id="zend.config.adapters.ini.table">
  91. <title>Parámetros del constructor Zend_Config_Ini</title>
  92. <tgroup cols="2">
  93. <thead>
  94. <row>
  95. <entry>Parámetros</entry>
  96. <entry>Notas</entry>
  97. </row>
  98. </thead>
  99. <tbody>
  100. <row>
  101. <entry>
  102. <varname>$filename</varname>
  103. </entry>
  104. <entry> El archivo <acronym>INI</acronym> que se va a
  105. cargar. </entry>
  106. </row>
  107. <row>
  108. <entry>
  109. <varname>$section</varname>
  110. </entry>
  111. <entry> La [sección] contenida en el archivo
  112. <acronym>INI</acronym> que se va a cargar. Fijar
  113. este parámetro a <constant>NULL</constant> cargará
  114. todas las secciones. Alternativamente, se puede
  115. introducir un array de nombres de sección para
  116. cargar multiples secciones. </entry>
  117. </row>
  118. <row>
  119. <entry>
  120. <varname>$options</varname> (default
  121. <constant>FALSE</constant> ) </entry>
  122. <entry> Array de opciones. Las siguientes claves están
  123. aceptadas: <itemizedlist>
  124. <listitem>
  125. <para>
  126. <emphasis>
  127. <property>allowModifications</property>
  128. </emphasis> : : Fijar a
  129. <constant>TRUE</constant> para permitir
  130. modificaciones subsiguientes del archivo
  131. cargado. Por defecto es
  132. <constant>NULL</constant>
  133. </para>
  134. </listitem>
  135. <listitem>
  136. <para>
  137. <emphasis>
  138. <property>nestSeparator</property>
  139. </emphasis> : Carácter que utilizar como
  140. separador de anidamiento. Por defecto es
  141. "." </para>
  142. </listitem>
  143. </itemizedlist>
  144. </entry>
  145. </row>
  146. </tbody>
  147. </tgroup>
  148. </table>
  149. </note>
  150. </sect1>