Zend_Config_Array
позволяет разработчикам хранить конфигурационные
данные в многомерном ассоциативном массиве и иметь доступ к ним как к
свойствам объекта через Zend_Config
.
Пример 3.2. Конфигурационные данные в массивах PHP
Этот пример иллюстрирует основы использования Zend_Config_Array
для загрузки конфигурационных данных из массивов PHP. Для начала
нам нужно создать массив PHP, содержащий конфигурационные данные:
<?php // Конфигурационные данные производственного сайта $config['production'] = array( 'webhost' => 'www.example.com', 'database' => array( 'type' => 'pdo_mysql', 'host' => 'db.example.com', 'username' => 'dbuser', 'password' => 'secret', 'name' => 'dbname' ) ); // Конфигурационные данные промежуточного сайта наследуются от // производственного варианта и значения замещаются на нужные $config['staging'] = $config['production']; $config['staging']['webhost'] = 'dev.example.com'; $config['staging']['database']['host'] = 'dev.example.com'; $config['staging']['database']['username'] = 'devuser'; $config['staging']['database']['password'] = 'devsecret'; ?>
Замечание | |
---|---|
Массив конфигурационных данных должен иметь имя $config
в загружаемом скрипте PHP.
|
В примере выше наследование поддерживается посредством присваивания
раздела production
разделу staging
.
Теперь загрузка конфигурационных данных с Zend_Config_Array
производится просто:
<?php require_once 'Zend/Config.php'; require_once 'Zend/Config/Array.php'; $config = new Zend_Config(Zend_Config_Array::load('/path/to/config.php', 'staging')); echo $config->database->host; // выводит: "dev.example.com" ?>
Заслуживает внимания то, что, поскольку конфигурационные данные добавлены
прямо в массив PHP, каждое значение конфигурационных данных имеет тот же
тип данных, который дан в скрипте PHP, содержащем массив
$config
.
<?php $config['staging']['debug'] = 'false'; // значение строкового типа $config['staging']['console'] = false; // значение булевого типа $config['staging']['timeout'] = 30; // значение целочисленного типа ?>