Главная / Zend Manual Core
Zend_Config

Введение

Zend_Config создан для того, чтобы сделать более простым доступ к конфигурационным данным и их использование внутри приложения. Он предоставляет основанный на вложенных свойствах объектов пользовательский интерфейс для доступа к конфигурационным данным внутри приложения. Конфигурационные данные могут храниться на различных носителях информации, поддерживающих хранение данных в виде иерархии. На данный момент Zend_Config предоставляет адаптеры для конфигурационных данных, хранящихся в текстовых файлах: Zend_Config_Ini и Zend_Config_Xml.

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

Обычно предполагается, что используется один из классов адаптеров, например, Zend_Config_Ini или Zend_Config_Xml. Но если конфигурационные данные доступны в виде массива PHP, то можно передавать эти данные конструктору Zend_Config, чтобы использовать преимущества простого объектно-ориентированного интерфейса.

  1. // Массив конфигурационных данных
  2. $configArray = array(
  3.     'webhost'  => 'www.example.com',
  4.     'database' => array(
  5.         'adapter' => 'pdo_mysql',
  6.         'params'  => array(
  7.             'host'     => 'db.example.com',
  8.             'username' => 'dbuser',
  9.             'password' => 'secret',
  10.             'dbname'   => 'mydatabase'
  11.         )
  12.     )
  13. );
  14.  
  15. // Создание объектно-ориентированной обертки для конфигурационных данных
  16. require_once 'Zend/Config.php';
  17. $config = new Zend_Config($configArray);
  18.  
  19. // Вывод элемента конфигурационных данных (результатом будет 'www.example.com')
  20. echo $config->webhost;
  21.  
  22. // Использование конфигурационных данных для соединения с базой данных
  23. $db = Zend_Db::factory($config->database->adapter,
  24.                        $config->database->params->toArray());
  25.  
  26. // Альтернативный способ - просто передавайте объект Zend_Config.
  27. // Фабрика Zend_Db знает, как его интерпретировать.
  28. $db = Zend_Db::factory($config->database);

Как показано в предыдущем примере, в Zend_Config для доступа к конфигурационным данным, переданным его конструктору, используется синтаксис вложенных свойств объектов.

Кроме объектно-ориентированного доступа к значениям данных, Zend_Config также предоставляет метод get(), который будет возвращать значение по умолчанию, если элемент данных не существует. Например:

  1. $host = $config->database->get('host', 'localhost');

Example #2 Использование Zend_Config с конфигурационным файлом PHP

Часто требуется использовать конфигурационный файл, основанный на "чистом" PHP. Следующий код показывает, как просто этого достичь:

  1. // config.php
  2. return array(
  3.     'webhost'  => 'www.example.com',
  4.     'database' => array(
  5.         'adapter' => 'pdo_mysql',
  6.         'params'  => array(
  7.             'host'     => 'db.example.com',
  8.             'username' => 'dbuser',
  9.             'password' => 'secret',
  10.             'dbname'   => 'mydatabase'
  11.         )
  12.     )
  13. );
  1. // Использование конфигурации
  2. $config = new Zend_Config(require 'config.php');
  3.  
  4. // Вывод элемента конфигурационных данных (результатом будет 'www.example.com')
  5. echo $config->webhost;

Zend_Config