ВведениеZend_Config создан для того, чтобы сделать более
простым доступ к конфигурационным данным и их использование внутри приложения.
Он предоставляет основанный на вложенных свойствах объектов пользовательский
интерфейс для доступа к конфигурационным данным внутри приложения.
Конфигурационные данные могут храниться на различных носителях информации,
поддерживающих хранение данных в виде иерархии. На данный момент
Zend_Config предоставляет адаптеры для конфигурационных
данных, хранящихся в текстовых файлах:
Zend_Config_Ini
и Zend_Config_Xml.
Использование Zend_Config
Обычно предполагается, что используется один из классов адаптеров, например,
Zend_Config_Ini
или Zend_Config_Xml.
Но если конфигурационные данные доступны в виде массива
PHP,
то можно передавать эти данные конструктору Zend_Config,
чтобы использовать преимущества простого объектно-ориентированного
интерфейса.
'www.example.com',
'database' => array(
'adapter' => 'pdo_mysql',
'params' => array(
'host' => 'db.example.com',
'username' => 'dbuser',
'password' => 'secret',
'dbname' => 'mydatabase'
)
)
);
// Создание объектно-ориентированной обертки для конфигурационных данных
require_once 'Zend/Config.php';
$config = new Zend_Config($configArray);
// Вывод элемента конфигурационных данных (результатом будет 'www.example.com')
echo $config->webhost;
// Использование конфигурационных данных для соединения с базой данных
$db = Zend_Db::factory($config->database->adapter,
$config->database->params->toArray());
// Альтернативный способ - просто передавайте объект Zend_Config.
// Фабрика Zend_Db знает, как его интерпретировать.
$db = Zend_Db::factory($config->database);
]]>
Как показано в предыдущем примере, в Zend_Config для
доступа к конфигурационным данным, переданным его конструктору,
используется синтаксис вложенных свойств объектов.
Кроме объектно-ориентированного доступа к значениям данных,
Zend_Config также предоставляет метод
get(),
который будет возвращать значение по умолчанию, если элемент
данных не существует. Например:
database->get('host', 'localhost');
]]>Использование Zend_Config с конфигурационным файлом PHP
Часто требуется использовать конфигурационный файл,
основанный на "чистом" PHP. Следующий код
показывает, как просто этого достичь:
'www.example.com',
'database' => array(
'adapter' => 'pdo_mysql',
'params' => array(
'host' => 'db.example.com',
'username' => 'dbuser',
'password' => 'secret',
'dbname' => 'mydatabase'
)
)
);]]>webhost;
]]>