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.

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

Этот пример демонстрирует использование Zend_Config_Writer_Xml для создания нового конфигурационного файла:

  1. // Создание объекта конфигурации
  2. 'staging', 'production''localhost';
  3. $config->production->db->username = 'production''staging';
  4.  
  5. // Вы можете записать конфигурационный файл одним из следующих способов:
  6. // а)
  7. 'config'   => $config,
  8.                                            'filename' => 'config.xml'));
  9. $writer->write();
  10.  
  11. // б)
  12. 'config.xml')
  13.        ->write();
  14.  
  15. // в)
  16. 'config.xml', $config);

В этом примере создается конфигурационный XML-файл с "промежуточным" (staging) и "производственным" (production) разделами, в котором первый раздел наследует от второго.

Example #2 Изменение существующего конфигурационного файла

Этот пример демонстрирует редактирование существующего конфигурационного файла.

  1. // Загрузка всех разделов из существующего конфигурационного файла с
  2. // пропуском "расширений"
  3. 'config.ini''skipExtends''allowModifications'// Изменение значения
  4. $config->production->hostname = 'foobar';
  5.  
  6. // Сохранение
  7. 'config'   => $config,
  8.                                            'filename' => 'config.ini'));
  9. $writer->write();

Note: Загрузка конфигурационного файла
При загрузке существующего файла для последующих изменений важно загрузить все разделы с пропуском расширений с тем, чтобы значения не объединялись. Это достигается путем передачи опции skipExtends конструктору.


Zend_Config_Writer