| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <sect1 id="zend.config.adapters.ini">
- <title>Zend_Config_Ini</title>
- <para>
- <classname>Zend_Config_Ini</classname> дает разработчикам возможность хранить
- конфигурационные данные в знакомом большинству формате INI и считывать
- их в приложении с использованием синтаксиса вложенных свойств объекта.
- Формат INI специализируется на обеспечении иерархии конфигурационных
- данных и наследования между разделами конфигурационных данных.
- Иерархии конфигурационных данных поддерживаются посредством
- разделения ключей точкой (<code>.</code>). Раздел можно расширять
- или наследовать от другого раздела посредством указания имени раздела
- с двоеточием (<code>:</code>) и именем раздела, от которого
- наследуются данные, после него.
- </para>
- <note>
- <title>Синтаксический разбор INI-файла</title>
- <para>
- <classname>Zend_Config_Ini</classname> использует функцию PHP
- <ulink url="http://php.net/parse_ini_file"><code>parse_ini_file()</code></ulink>.
- Пожалуйста, почитайте документацию, чтобы получить представление об
- особенностях ее поведения, которые распространяются и на
- <classname>Zend_Config_Ini</classname> — например, о том, как обрабатываются
- специальные значения <constant>TRUE</constant>, <constant>FALSE</constant>, <code>yes</code>,
- <code>no</code> и <constant>NULL</constant>.
- </para>
- </note>
- <note>
- <title>Разделитель ключей</title>
- <para>
- По умолчанию разделителем ключей является символ точки
- (<code>.</code>). Он может быть заменен на любой другой путем
- изменения ключа <code>'nestSeparator'</code> в массиве
- <varname>$options</varname> при создании объекта <classname>Zend_Config_Ini</classname>.
- Например:
- <programlisting language="php"><![CDATA[
- $options['nestSeparator'] = ':';
- $config = new Zend_Config_Ini('/path/to/config.ini',
- 'staging',
- $options);
- ]]></programlisting>
- </para>
- </note>
- <example id="zend.config.adapters.ini.example.using">
- <title>Использование Zend_Config_Ini</title>
- <para>
- Данный пример демонстрирует использование <classname>Zend_Config_Ini</classname>
- для загрузки конфигурационных данных из файла INI. В этом примере
- используются конфигурационные данные для производственной и
- промежуточной систем. Поскольку конфигурационные данные для
- промежуточной и производственной систем в основном одни и те же,
- то "промежуточный" (staging) раздел наследует от
- "производственного" (production) раздела. В данном случае выбор
- произвольный, т.е. может быть и наоборот — "производственный"
- раздел наследует от "промежуточного", хотя это может не подходить в
- более сложных случаях. Допустим, конфигурационные данные
- находятся в файле <code>/path/to/config.ini</code>:
- </para>
- <programlisting language="ini"><![CDATA[
- ; Конфигурационные данные производственного сайта
- [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
- ; Конфигурационные данные промежуточного сайта наследуются от
- ; данных производственного и подменяют их при необходимости.
- [staging : production]
- database.params.host = dev.example.com
- database.params.username = devuser
- database.params.password = devsecret
- ]]></programlisting>
- <para>
- Далее предположим, что разработчику приложения нужны "промежуточные"
- конфигурационные данные из файла INI. Загрузить эти данные,
- указав файл INI и нужный раздел, довольно просто:
- </para>
- <programlisting language="php"><![CDATA[
- $config = new Zend_Config_Ini('/path/to/config.ini', 'staging');
- echo $config->database->params->host; // выведет "dev.example.com"
- echo $config->database->params->dbname; // выведет "dbname"
- ]]></programlisting>
- </example>
- <note>
- <table id="zend.config.adapters.ini.table">
- <title>Параметры конструктора Zend_Config_Ini</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Параметр</entry>
- <entry>Примечание</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><varname>$filename</varname></entry>
- <entry>INI-файл для загрузки</entry>
- </row>
- <row>
- <entry><varname>$section</varname></entry>
- <entry>
- Раздел в INI-файле, который должен быть загружен.
- Установка этого параметра в null вызовет загрузку всех
- разделов. Также может быть передан массив имен разделов
- для загрузки нескольких разделов.
- </entry>
- </row>
- <row>
- <entry><varname>$options = false</varname></entry>
- <entry>
- Массив опций. Поддерживаются следующие ключи:
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>allowModifications</emphasis>:
- Устанавливается в true, чтобы разрешить
- последующую модификацию загруженного файла.
- По умолчанию установлен в false
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>nestSeparator</emphasis>:
- Задает символ, используемый в качестве
- разделителя узлов. По умолчанию это "."
- </para>
- </listitem>
- </itemizedlist>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </note>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|