Zend_Config_Ini.xml 8.8 KB

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