1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161
|
<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- 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 através
de uma sintaxe de propriedade de 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 caractere 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 <acronym>INI</acronym> 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:
-->
|