Programmer's Reference Guide
| Zend_Config_Writer |
Zend_Config_Writer
Zend_Config_Writer позволяет создавать конфигурационные файлы из объектов Zend_Config. Он работает и без использования адаптеров и, таким образом, очень прост в использовании. По умолчанию Zend_Config_Writer поставляется с тремя адаптерами, которые используются одинаково. Вы инстанцируете класс для записи с опциями, которыми могут быть filename (имя файла) и config (конфигурационные данные). Затем вы вызываете метод write() объекта, и он создает конфигурационный файл. Вы можете также передавать $filename и $config непосредственно методу write(). В настоящее время вместе с Zend_Config_Writer поставляются следующие адаптеры:
-
Zend_Config_Writer_Array
-
Zend_Config_Writer_Ini
-
Zend_Config_Writer_Xml
В качестве исключения Zend_Config_Writer_Ini имеет еще один опциональный параметр nestSeparator, через который указывается символ-разделитель для узлов. По умолчанию это точка, как и в Zend_Config_Ini.
При изменении или создании объекта Zend_Config следует знать следующее. Для того, чтобы создать или изменить значение, устанавливайте параметр объекта Zend_Config через аксессор (->). Для того, чтобы создать раздел в корне или ветку, создавайте новый массив ("$config->branch = array()"). Для того, чтобы указать, от какого раздела наследует другой, вызывайте метод setExtend() в корне объекта Zend_Config.
Пример #1 Использование Zend_Config_Writer
Этот пример демонстрирует использование Zend_Config_Writer_Xml для создания нового конфигурационного файла:
- // Создание объекта конфигурации
- $config->setExtend('staging', 'production');
- $config->production->db->hostname = 'localhost';
- $config->production->db->username = 'production';
- $config->staging->db->username = 'staging';
- // Вы можете записать конфигурационный файл одним из следующих способов:
- // а)
- 'filename' => 'config.xml'));
- $writer->write();
- // б)
- $writer = new Zend_Config_Writer_Xml();
- $writer->setConfig($config)
- ->setFilename('config.xml')
- ->write();
- // в)
- $writer = new Zend_Config_Writer_Xml();
- $writer->write('config.xml', $config);
В этом примере создается конфигурационный XML-файл с "промежуточным" (staging) и "производственным" (production) разделами, в котором первый раздел наследует от второго.
Пример #2 Изменение существующего конфигурационного файла
Этот пример демонстрирует редактирование существующего конфигурационного файла.
- // Загрузка всех разделов из существующего конфигурационного файла с
- // пропуском "расширений"
- $config = new Zend_Config_Ini('config.ini',
- null,
- 'allowModifications' => true));
- // Изменение значения
- $config->production->hostname = 'foobar';
- // Сохранение
- 'filename' => 'config.ini'));
- $writer->write();
Замечание: Загрузка конфигурационного файла
При загрузке существующего файла для последующих изменений важно загрузить все разделы с пропуском расширений с тем, чтобы значения не объединялись. Это достигается путем передачи опции skipExtends конструктору.
| Zend_Config_Writer |
