Zend_Config_Ini.xml 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. <sect1 id="zend.config.adapters.ini">
  2. <title>Zend_Config_Ini</title>
  3. <para>
  4. <code>Zend_Config_Ini</code>
  5. permite a los desarrolladores almacenar datos de configuración
  6. en un formato de datos INI familiar, y leer de ellos en la
  7. aplicación usando una sintáxis de propiedades de objetos
  8. anidados. El formato INI se especializa en proveer tanto la
  9. habilidad de mantener una jerarquía de claves de datos (data
  10. keys) de configuración como la de mantener una jerarquía entre
  11. secciones de datos de configuración. Las jerarquías de datos de
  12. configuración son provistas separando las claves mediante el
  13. carácter punto (
  14. <code>.</code>
  15. ). Una sección puede extender o heredar de otra sección
  16. indicando el nombre de la sección seguido de dos puntos (
  17. <code>:</code>
  18. ) y el nombre de la sección desde la cual se quieren heredar los
  19. datos.
  20. </para>
  21. <note>
  22. <title>parse_ini_file</title>
  23. <para>
  24. <code>Zend_Config_Ini</code>
  25. utiliza la función
  26. <ulink url="http://php.net/parse_ini_file">
  27. <code>parse_ini_file()</code>
  28. </ulink>
  29. de PHP. Por favor, revise esta documentación para observar
  30. sus comportamientos específicos, que se propagan a
  31. <code>Zend_Config_Ini</code>
  32. , tales como la forma en que los valores especiales:
  33. <code>true</code>
  34. ,
  35. <code>false</code>
  36. ,
  37. <code>yes</code>
  38. ,
  39. <code>no</code>
  40. , y
  41. <code>null</code>
  42. son manejados.
  43. </para>
  44. </note>
  45. <note>
  46. <title>Separador de clave</title>
  47. <para>
  48. Por defecto, el carácter separador de clave es el punto (
  49. <code>.</code>
  50. ). Puede ser reemplazado, no obstante,cambiando la clave de
  51. <code>$options</code>
  52. llamada
  53. <code>'nestSeparator'</code>
  54. al construir el objeto
  55. <code>Zend_Config_Ini</code>
  56. . Por ejemplo:
  57. <programlisting role="php"><![CDATA[
  58. $options['nestSeparator'] = ':';
  59. $config = new Zend_Config_Ini('/path/to/config.ini',
  60. 'pruebas',
  61. $options);
  62. ]]>
  63. </programlisting>
  64. </para>
  65. </note>
  66. <example id="zend.config.adapters.ini.example.using">
  67. <title>Utilizando Zend_Config_Ini</title>
  68. <para>
  69. Este ejemplo muestra una forma de uso básica de
  70. <code>Zend_Config_Ini</code>
  71. para cargar datos de configuración de un archivo INI. En
  72. este ejemplo hay datos de configuración tanto para un
  73. sistema de producción como para un sistema en fase de
  74. pruebas. Debido a que los datos de la fase de pruebas son
  75. muy parecidos a los de producción, la sección de pruebas
  76. hereda de la sección de producción. En este caso, la
  77. decisión es arbitraria y podría haberse escrito a la
  78. inversa, con la sección de producción heredando de la
  79. sección de pruebas, a pesar de que éste no sería el caso
  80. para situaciones más complejas. Supongamos, entonces, que
  81. los siguientes datos de configuración están contenidos en
  82. <code>/path/to/config.ini</code>
  83. :
  84. </para>
  85. <programlisting role="ini"><![CDATA[
  86. ; Datos de configuración de la web de producción
  87. [produccion]
  88. webhost = www.example.com
  89. database.adapter = pdo_mysql
  90. database.params.host = db.example.com
  91. database.params.username = dbuser
  92. database.params.password = secret
  93. database.params.dbname = dbname
  94. ; Los datos de configuración de la fase de pruebas heredan de la producción
  95. ; y sobreescribren valores si es necesario
  96. [pruebas : produccion]
  97. database.params.host = dev.example.com
  98. database.params.username = devuser
  99. database.params.password = devsecret
  100. ]]>
  101. </programlisting>
  102. <para>
  103. Ahora, asuma que el desarrollador de aplicaciones necesita
  104. los datos de configuración de la etapa de pruebas del
  105. archivo INI. Resulta fácil cargar estos datos especificando
  106. el archivo INI en la sección de la etapa de pruebas:
  107. </para>
  108. <programlisting role="php"><![CDATA[
  109. $config = new Zend_Config_Ini('/path/to/config.ini', 'pruebas');
  110. echo $config->database->params->host; // muestra "dev.example.com"
  111. echo $config->database->params->dbname; // muestra "dbname"
  112. ]]>
  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. <code>$filename</code>
  129. </entry>
  130. <entry>
  131. El archivo INI que se va a cargar.
  132. </entry>
  133. </row>
  134. <row>
  135. <entry>
  136. <code>$section</code>
  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. <code>$options = false</code>
  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. -->