Zend_Config_Ini
дает разработчикам возможность хранить
конфигурационные данные в знакомом большинству формате INI и читать
их в приложении с использованием синтаксиса вложенных свойств объекта.
Формат INI специализируется на обеспечении иерархии конфигурационных
данных и наследования между разделами конфигурационных данных.
Иерархии конфигурационных данных поддерживаются посредством
разделения ключей точкой (.
). Раздел можно расширять
или наследовать от другого раздела посредством указания имени раздела
с двоеточием (:
) и имени раздела, от которого наследуются
данные.
parse_ini_file | |
---|---|
|
Разделитель ключей | |
---|---|
По умолчанию разделителем ключей является символ точки
( <?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"