Zend_Config_Ini.xml 8.0 KB

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