3.2. Zend_Config_Array
Пред. | Глава 3. Zend_Config | След.

## 3.2. Zend_Config_Array

### 3.2.1. Введение

`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; // значение целочисленного типа
    ?>

Пред. | Уровень выше | След.
Глава 3. Zend_Config | Начало | 3.3. Zend_Config_Ini