Coding Samples, Tutorials, Code Snippets, Articles, How-To`s - From Beginners to Expert. Stay tuned.
Share your knowledge. Regardless what experience you have made with the Zend Framework - Let all benefit.

Search Manual:

Please Sign in or Register

Available Languages

 


Manual for Zend Framework 1.0.3

5.3. Zend_Config_Ini

Zend_Config_Ini дает разработчикам возможность хранить конфигурационные данные в знакомом большинству формате INI и читать их в приложении с использованием синтаксиса вложенных свойств объекта. Формат INI специализируется на обеспечении иерархии конфигурационных данных и наследования между разделами конфигурационных данных. Иерархии конфигурационных данных поддерживаются посредством разделения ключей точкой (.). Раздел можно расширять или наследовать от другого раздела посредством указания имени раздела с двоеточием (:) и имени раздела, от которого наследуются данные.

[Замечание] parse_ini_file

Zend_Config_Ini использует функцию PHP parse_ini_file(). Пожалуйста, почитайте документацию, чтобы знать особенности ее поведения, которые распространяются и на Zend_Config_Ini — например, о том, как обрабатываются специальные значения true, false, yes, no и null.

[Замечание] Разделитель ключей

По умолчанию разделителем ключей является символ точки (.). Он может быть заменен на любой другой посредством изменения ключа 'nestSeparator' в $config при создании объекта Zend_Config_Ini. Например:

<?php
require_once 'Zend/Config/Ini.php';
$config['nestSeparator'] = ':';
$config = new Zend_Config_Ini('/path/to/config.ini', 'staging', $config);

Пример 5.2. Использование Zend_Config_Ini

Данный пример демонстрирует основы использования Zend_Config_Ini для загрузки конфигурационных данных из файла INI. В этом примере используются конфигурационные данные для производственной и промежуточной систем. Поскольку конфигурационные данные промежуточной системы очень похожи на конфигурационные данные для производственной системы, то "промежуточный" (staging) раздел наследует от "производственного" (production) раздела. В данном случае выбор произвольный, т.е. может быть и наоборот — "производственный" раздел наследует от "промежуточного", но это может не подходить в более сложных случаях. Допустим, конфигурационные данные находятся в файле /path/to/config.ini:

; Production site configuration data
[production]
webhost           = www.example.com
database.type     = pdo_mysql
database.host     = db.example.com
database.username = dbuser
database.password = secret
database.name     = dbname

; Staging site configuration data inherits from production and
; overrides values as necessary
[staging : production]
database.host     = dev.example.com
database.username = devuser
database.password = devsecret

Далее предположим, что разработчику приложения нужны "промежуточные" конфигурационные данные из файла INI. Загрузить эти данные через указание файла INI и нужного раздела довольно просто:

<?php
require_once 'Zend/Config/Ini.php';

$config = new Zend_Config_Ini('/path/to/config.ini', 'staging');

echo $config->database->host; // выведет "dev.example.com"
echo $config->database->name; // выведет "dbname"

[Замечание] Замечание

Таблица 5.1. Параметры конструктора Zend_Config_Ini

Параметр Примечание
$filename INI-файл для загрузки
$section Раздел в INI-файле, который должен быть загружен. Установка этого параметра в null вызовет загрузку всех разделов. Также может быть передан массив имен разделов для загрузки нескольких разделов.
$config = false Конфигурационный массив. Поддерживаются следующие ключи:
  • allowModifications: Устанавливается в true, чтобы разрешить последующую модификацию загруженного файла. По умолчанию установлен в false

  • nestSeparator: Задает символ, используемый в качестве разделителя узлов. По умолчанию это "."


Welcome!

Welcome to ZFResource - The Resource for the Zend Framework.
As you see, the website is in still in progress. Many features ( like Code Directory, Code Samples, User written Tutorials, Examples and News,...) will be online in near future.
At the moment, you can search and browse the manual in your language of choice. Don't forget to come back later to benefit from the new features.


Help Wanted:

We are still searching for people want to help building this site. If you want to see this website in your language or you have any suggestions for this site please send us an email