|
|
@@ -0,0 +1,151 @@
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<!-- EN-Revision: 17564 -->
|
|
|
+<!-- Reviewed: no -->
|
|
|
+<sect1 id="zend.config.adapters.ini">
|
|
|
+ <title>Zend_Config_Ini</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ <classname>Zend_Config_Ini</classname> permite aos desenvolvedores armazenar os dados de
|
|
|
+ configuração em um formato <acronym>INI</acronym> conhecido e lê-los no aplicativo usando
|
|
|
+ sintaxe de propriedade do objeto aninhado. O formato <acronym>INI</acronym> é especializado
|
|
|
+ em proporcionar tanto a capacidade de ter uma hierarquia de chaves de dados de configuração
|
|
|
+ quanto de herança entre as seções de dados de configuração. Hierarquias de dados de
|
|
|
+ configuração são suportadas através da separação das chaves com o ponto ou caractere de
|
|
|
+ período ("<emphasis>.</emphasis>"). Uma seção pode estender ou herdar de outra seção,
|
|
|
+ seguindo o nome da seção, com um caractere dois pontos ("<emphasis>:</emphasis>") e o nome
|
|
|
+ da seção a partir do qual os dados devem ser herdados.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <note>
|
|
|
+ <title>Analisando o Arquivo INI</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ <classname>Zend_Config_Ini</classname> utiliza a função <ulink
|
|
|
+ url="http://php.net/parse_ini_file"><methodname>parse_ini_file()</methodname></ulink>
|
|
|
+ do <acronym>PHP</acronym>. Por favor reveja esta documentação para estar ciente de seus
|
|
|
+ comportamentos característicos, que conduzem o <classname>Zend_Config_Ini</classname>,
|
|
|
+ tais como os valores especiais "<constant>TRUE</constant>",
|
|
|
+ "<constant>FALSE</constant>", "sim", "não", e "<constant>NULL</constant>"
|
|
|
+ são manipulados.
|
|
|
+ </para>
|
|
|
+ </note>
|
|
|
+
|
|
|
+ <note>
|
|
|
+ <title>Separador de Chave</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Por padrão, o caractere separador de chave é o carácter de período
|
|
|
+ ("<emphasis>.</emphasis>"). Isso pode ser alterado, de qualquer modo, alterando a chave
|
|
|
+ <property>nestSeparator</property> de <varname>$options</varname> na construção do
|
|
|
+ objeto <classname>Zend_Config_Ini</classname>. Por exemplo:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
+$options['nestSeparator'] = ':';
|
|
|
+$config = new Zend_Config_Ini('/path/to/config.ini',
|
|
|
+ 'staging',
|
|
|
+ $options);
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ </note>
|
|
|
+
|
|
|
+ <example id="zend.config.adapters.ini.example.using">
|
|
|
+ <title>Usando o Zend_Config_Ini</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Este exemplo ilustra uma utilização básica de <classname>Zend_Config_Ini</classname>
|
|
|
+ para carregar dados de configuração de um arquivo <acronym>INI</acronym>. Neste
|
|
|
+ exemplo, existem dados de configuração, tanto para um sistema de produção como para um
|
|
|
+ sistema de testes. Pois os dados de configuração de um sistema de testes são muito
|
|
|
+ semelhantes aos de produção, a seção de testes herda da seção de produção. Neste caso,
|
|
|
+ a decisão é arbitrária e poderia ter sido escrita de modo inverso, com a seção de
|
|
|
+ produção herdando da seção de testes, embora isso possa não ser o caso em situações
|
|
|
+ mais complexas. Suponha-se, então, que os dados de configuração a seguir estão
|
|
|
+ contidos em <filename>/path/to/config.ini</filename>:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="ini"><![CDATA[
|
|
|
+; Dados de configuração da seção de produção
|
|
|
+[production]
|
|
|
+webhost = www.example.com
|
|
|
+database.adapter = pdo_mysql
|
|
|
+database.params.host = db.example.com
|
|
|
+database.params.username = dbuser
|
|
|
+database.params.password = secret
|
|
|
+database.params.dbname = dbname
|
|
|
+
|
|
|
+; Os dados de configuração da seção de testes são herdados
|
|
|
+; da produção e substitui os valores conforme necessário
|
|
|
+[staging : production]
|
|
|
+database.params.host = dev.example.com
|
|
|
+database.params.username = devuser
|
|
|
+database.params.password = devsecret
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Em seguida, suponha que o desenvolvedor do aplicativo necessite dos dados de
|
|
|
+ configuração de testes do arquivo <acronym>INI</acronym>. É o simples caso de carregar
|
|
|
+ esses dados especificando o arquivo <acronym>INI</acronym> e a seção de testes:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
+$config = new Zend_Config_Ini('/path/to/config.ini', 'staging');
|
|
|
+
|
|
|
+echo $config->database->params->host; // imprime "dev.example.com"
|
|
|
+echo $config->database->params->dbname; // imprime "dbname"
|
|
|
+]]></programlisting>
|
|
|
+ </example>
|
|
|
+
|
|
|
+ <note>
|
|
|
+ <table id="zend.config.adapters.ini.table">
|
|
|
+ <title>Parâmetros do Construtor Zend_Config_Ini</title>
|
|
|
+ <tgroup cols="2">
|
|
|
+ <thead>
|
|
|
+ <row>
|
|
|
+ <entry>Parâmetro</entry>
|
|
|
+ <entry>Notas</entry>
|
|
|
+ </row>
|
|
|
+ </thead>
|
|
|
+ <tbody>
|
|
|
+ <row>
|
|
|
+ <entry><varname>$filename</varname></entry>
|
|
|
+ <entry>O arquivo <acronym>INI</acronym> a ser carregado.</entry>
|
|
|
+ </row>
|
|
|
+ <row>
|
|
|
+ <entry><varname>$section</varname></entry>
|
|
|
+ <entry>A [seção] no arquivo ini que está sendo carregado. Definir este
|
|
|
+ parâmetro como <constant>NULL</constant> irá carregar todas as seções.
|
|
|
+ Alternativamente, uma matriz de nomes de seção pode ser fornecida para
|
|
|
+ carregar várias seções.
|
|
|
+ </entry>
|
|
|
+ </row>
|
|
|
+ <row>
|
|
|
+ <entry><varname>$options</varname> (padrão <constant>FALSE</constant>)</entry>
|
|
|
+ <entry>Matriz de opções. As seguintes chaves são suportadas:
|
|
|
+ <itemizedlist>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis><property>allowModifications</property></emphasis>:
|
|
|
+ Defina como <constant>TRUE</constant> para permitir a alteração
|
|
|
+ subsequente dos dados de configuração carregados na memória.
|
|
|
+ O padrão é <constant>NULL</constant>
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis><property>nestSeparator</property></emphasis>:
|
|
|
+ Define o caractere a ser usado como separador de aninhamento.
|
|
|
+ O padrão é "."
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ </itemizedlist>
|
|
|
+ </entry>
|
|
|
+ </row>
|
|
|
+ </tbody>
|
|
|
+ </tgroup>
|
|
|
+ </table>
|
|
|
+ </note>
|
|
|
+</sect1>
|
|
|
+<!--
|
|
|
+vim:se ts=4 sw=4 et:
|
|
|
+-->
|