Главная / Zend Manual Core
Теоретические основы работы с Zend_Config

Zend_Config_Ini

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

Note: Синтаксический разбор INI-файла
Zend_Config_Ini использует функцию PHP » parse_ini_file(). Пожалуйста, прочитайте документацию, чтобы получить представление об особенностях ее поведения, которые распространяются и на Zend_Config_Ini — например, о том, как обрабатываются специальные значения "TRUE", "FALSE", "yes", "no" и "NULL".

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

  1. $options['nestSeparator'] = ':';
  2. $config = new Zend_Config_Ini('/path/to/config.ini',
  3.                               'staging',
  4.                               $options);

Example #1 Использование Zend_Config_Ini

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

  1. ; Конфигурационные данные производственного сайта
  2. [production]
  3. webhost                  = www.example.com
  4. database.adapter         = pdo_mysql
  5. database.params.host     = db.example.com
  6. database.params.username = dbuser
  7. database.params.password = secret
  8. database.params.dbname   = dbname
  9.  
  10. ; Конфигурационные данные промежуточного сайта наследуются от
  11. ; данных производственного и подменяют их при необходимости.
  12. [staging : production]
  13. database.params.host     = dev.example.com
  14. database.params.username = devuser
  15. database.params.password = devsecret

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

  1. $config = new Zend_Config_Ini('/path/to/config.ini', 'staging');
  2.  
  3. echo $config->database->params->host;   // выведет "dev.example.com"
  4. echo $config->database->params->dbname; // выведет "dbname"

Note:

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

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


Теоретические основы работы с Zend_Config