Programmer's Reference Guide
| Теоретические основы работы с Zend_Config |
Zend_Config_Ini
Zend_Config_Ini дает разработчикам возможность хранить конфигурационные данные в знакомом большинству формате INI и считывать их в приложении с использованием синтаксиса вложенных свойств объекта. Формат INI специализируется на обеспечении иерархии конфигурационных данных и наследования между разделами конфигурационных данных. Иерархии конфигурационных данных поддерживаются посредством разделения ключей точкой ("."). Раздел можно расширять или наследовать от другого раздела посредством указания имени раздела с двоеточием (":") и именем раздела, от которого наследуются данные, после него.
Замечание: Синтаксический разбор INI-файла
Zend_Config_Ini использует функцию PHP » parse_ini_file(). Пожалуйста, прочитайте документацию, чтобы получить представление об особенностях ее поведения, которые распространяются и на Zend_Config_Ini — например, о том, как обрабатываются специальные значения "TRUE", "FALSE", "yes", "no" и "NULL".
Замечание: Разделитель ключей
По умолчанию разделителем ключей является символ точки ("."). Он может быть заменен на любой другой путем изменения ключа 'nestSeparator' в массиве $options при создании объекта Zend_Config_Ini. Например:
$options['nestSeparator'] = ':'; $config = new Zend_Config_Ini('/path/to/config.ini', 'staging', $options);
Пример #1 Использование 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 и нужный раздел, довольно просто:
Замечание:
Параметры конструктора Zend_Config_Ini Параметр Примечание $filename INI-файл для загрузки $section Раздел в INI-файле, который должен быть загружен. Установка этого параметра в NULL вызовет загрузку всех разделов. Также может быть передан массив имен разделов для загрузки нескольких разделов. $options = false Массив опций. Поддерживаются следующие ключи:
allowModifications: Устанавливается в TRUE, чтобы разрешить последующую модификацию загруженного файла. По умолчанию установлен в FALSE
nestSeparator: Задает символ, используемый в качестве разделителя узлов. По умолчанию это "."
| Теоретические основы работы с Zend_Config |
Add A Comment
Please do not report issues via comments; use the ZF Issue Tracker.
If you have a JIRA/Crowd account, we suggest you login first before commenting.

Comments
settings.status.live = true
on retrieving the value is string(1) "1"
settings.status.live = false
on retrieving the value is string(0) ""
Petit bug dans cette classe, je m'explique, j'ai développé un client SOAP j'utilise la classe Zend ini pour pouvoir modifier les différents paramêtres pour le SOAP, simplement si vous mettez des masque de bit (bitmask) en l'occurence ceux du SOAP : SOAP_SINGLE_ELEMENT_ARRAYS, SOAP_USE_XSI_ARRAY_TYPE et, SOAP_WAIT_ONE_WAY_CALLS qui sont les features du SOAP cela ne marche pas il interprete surment les faite que se soit une string... il faut le faire en dur de cette façon : setOption(array('features' => SOAP_SINGLE_ELEMENT_ARRAYS)) cette méthode marche.
a plus !
ПС. Это не пиар.
то печалька....
wie genau gebe ich denn den Pfad zu der Ini-Datei an? Wenn ich z. B. im View in der Datei "application/views/scripts/index/index.phtml" den Eintrag "meta.description" ausgeben möchte?