Zend_Config_Ini
дает разработчикам возможность хранить
конфигурационные данные в знакомом большинству формате INI и читать
их в приложении с использованием синтаксиса вложенных свойств объекта.
Формат INI специализируется на обеспечении иерархии конфигурационных
данных и наследования между разделами конфигурационных данных.
Иерархии конфигурационных данных поддерживаются посредством
разделения ключей точкой (.
). Раздел можно расширять
или наследовать от другого раздела посредством указания имени раздела
с двоеточием (:
) и именем раздела, от которого
наследуются данные, после него.
parse_ini_file | |
---|---|
|
Разделитель ключей | |
---|---|
По умолчанию разделителем ключей является символ точки
( <?php require_once 'Zend/Config/Ini.php'; $options['nestSeparator'] = ':'; $config = new Zend_Config_Ini('/path/to/config.ini', 'staging', $options);
|
Пример 5.3. Использование Zend_Config_Ini
Данный пример демонстрирует основы использования Zend_Config_Ini
для загрузки конфигурационных данных из файла INI. В этом примере
используются конфигурационные данные для производственной и
промежуточной систем. Поскольку конфигурационные данные
промежуточной системы очень похожи на конфигурационные данные для
производственной системы, то "промежуточный" (staging) раздел наследует от
"производственного" (production) раздела. В данном случае выбор
произвольный, т.е. может быть и наоборот — "производственный"
раздел наследует от "промежуточного", хотя это может не подходить в
более сложных случаях. Допустим, конфигурационные данные
находятся в файле /path/to/config.ini
:
; Конфигурационные данные производственного сайта [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
Далее предположим, что разработчику приложения нужны "промежуточные" конфигурационные данные из файла INI. Загрузить эти данные, указав файл INI и нужный раздел, довольно просто:
<?php require_once 'Zend/Config/Ini.php'; $config = new Zend_Config_Ini('/path/to/config.ini', 'staging'); echo $config->database->params->host; // выведет "dev.example.com" echo $config->database->params->dbname; // выведет "dbname"