Zend_Config_Ini.xml 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  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 aos desenvolvedores armazenar os dados de
  8. configuração em um formato <acronym>INI</acronym> conhecido e lê-los no aplicativo através
  9. de uma sintaxe de propriedade de objeto aninhado. O formato <acronym>INI</acronym> é
  10. especializado em proporcionar tanto a capacidade de ter uma hierarquia de chaves de dados
  11. de configuração quanto de herança entre as seções de dados de configuração. Hierarquias de
  12. dados de configuração são suportadas através da separação das chaves com o ponto ou
  13. caractere de período ("<emphasis>.</emphasis>"). Uma seção pode estender ou herdar de outra
  14. seção, seguindo o nome da seção, com um caractere dois pontos ("<emphasis>:</emphasis>") e
  15. o nome da seção a partir do qual os dados devem ser herdados.
  16. </para>
  17. <note>
  18. <title>Analisando o Arquivo INI</title>
  19. <para>
  20. <classname>Zend_Config_Ini</classname> utiliza a função <ulink
  21. url="http://php.net/parse_ini_file"><methodname>parse_ini_file()</methodname></ulink>
  22. do <acronym>PHP</acronym>. Por favor reveja esta documentação para estar ciente de seus
  23. comportamentos característicos, que conduzem o <classname>Zend_Config_Ini</classname>,
  24. tais como os valores especiais "<constant>TRUE</constant>",
  25. "<constant>FALSE</constant>", "sim", "não", e "<constant>NULL</constant>"
  26. são manipulados.
  27. </para>
  28. </note>
  29. <note>
  30. <title>Separador de Chave</title>
  31. <para>
  32. Por padrão, o caractere separador de chave é o caractere de período
  33. ("<emphasis>.</emphasis>"). Isso pode ser alterado, de qualquer modo, alterando a chave
  34. <property>nestSeparator</property> de <varname>$options</varname> na construção do
  35. objeto <classname>Zend_Config_Ini</classname>. Por exemplo:
  36. </para>
  37. <programlisting language="php"><![CDATA[
  38. $options['nestSeparator'] = ':';
  39. $config = new Zend_Config_Ini('/path/to/config.ini',
  40. 'staging',
  41. $options);
  42. ]]></programlisting>
  43. </note>
  44. <example id="zend.config.adapters.ini.example.using">
  45. <title>Usando o Zend_Config_Ini</title>
  46. <para>
  47. Este exemplo ilustra uma utilização básica de <classname>Zend_Config_Ini</classname>
  48. para carregar dados de configuração de um arquivo <acronym>INI</acronym>. Neste
  49. exemplo, existem dados de configuração, tanto para um sistema de produção como para um
  50. sistema de testes. Pois os dados de configuração de um sistema de testes são muito
  51. semelhantes aos de produção, a seção de testes herda da seção de produção. Neste caso,
  52. a decisão é arbitrária e poderia ter sido escrita de modo inverso, com a seção de
  53. produção herdando da seção de testes, embora isso possa não ser o caso em situações
  54. mais complexas. Suponha-se, então, que os dados de configuração a seguir estão
  55. contidos em <filename>/path/to/config.ini</filename>:
  56. </para>
  57. <programlisting language="ini"><![CDATA[
  58. ; Dados de configuração da seção de produção
  59. [production]
  60. webhost = www.example.com
  61. database.adapter = pdo_mysql
  62. database.params.host = db.example.com
  63. database.params.username = dbuser
  64. database.params.password = secret
  65. database.params.dbname = dbname
  66. ; Os dados de configuração da seção de testes são herdados
  67. ; da produção e substitui os valores conforme necessário
  68. [staging : production]
  69. database.params.host = dev.example.com
  70. database.params.username = devuser
  71. database.params.password = devsecret
  72. ]]></programlisting>
  73. <para>
  74. Em seguida, suponha que o desenvolvedor do aplicativo necessite dos dados de
  75. configuração de testes do arquivo <acronym>INI</acronym>. É o simples caso de carregar
  76. esses dados especificando o arquivo <acronym>INI</acronym> e a seção de testes:
  77. </para>
  78. <programlisting language="php"><![CDATA[
  79. $config = new Zend_Config_Ini('/path/to/config.ini', 'staging');
  80. echo $config->database->params->host; // imprime "dev.example.com"
  81. echo $config->database->params->dbname; // imprime "dbname"
  82. ]]></programlisting>
  83. </example>
  84. <note>
  85. <table id="zend.config.adapters.ini.table">
  86. <title>Parâmetros do Construtor Zend_Config_Ini</title>
  87. <tgroup cols="2">
  88. <thead>
  89. <row>
  90. <entry>Parâmetro</entry>
  91. <entry>Notas</entry>
  92. </row>
  93. </thead>
  94. <tbody>
  95. <row>
  96. <entry><varname>$filename</varname></entry>
  97. <entry>O arquivo <acronym>INI</acronym> a ser carregado.</entry>
  98. </row>
  99. <row>
  100. <entry><varname>$section</varname></entry>
  101. <entry>A [seção] no arquivo <acronym>INI</acronym> que está sendo carregado.
  102. Definir este parâmetro como <constant>NULL</constant> irá carregar todas
  103. as seções. Alternativamente, uma matriz de nomes de seção pode ser
  104. fornecida para carregar várias seções.
  105. </entry>
  106. </row>
  107. <row>
  108. <entry>
  109. <varname>$options</varname> (padrão <constant>FALSE</constant>)
  110. </entry>
  111. <entry>
  112. Matriz de opções. As seguintes chaves são suportadas:
  113. <itemizedlist>
  114. <listitem>
  115. <para>
  116. <emphasis><property>allowModifications</property></emphasis>:
  117. Defina como <constant>TRUE</constant> para permitir a
  118. alteração subsequente dos dados de configuração carregados
  119. na memória. O padrão é <constant>NULL</constant>
  120. </para>
  121. </listitem>
  122. <listitem>
  123. <para>
  124. <emphasis><property>nestSeparator</property></emphasis>:
  125. Define o caractere a ser usado como separador de
  126. aninhamento. O padrão é "."
  127. </para>
  128. </listitem>
  129. </itemizedlist>
  130. </entry>
  131. </row>
  132. </tbody>
  133. </tgroup>
  134. </table>
  135. </note>
  136. </sect1>
  137. <!--
  138. vim:se ts=4 sw=4 et:
  139. -->