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';
?>           

[注意] 注意
設定データの配列は、PHP スクリプトに $config という名前で読み込まれる必要があります。

上の例において、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 の配列に追加されるので、各データの型は $config 配列を含む PHP スクリプトで指定したものと同じになることに注意しましょう。

<?php
$config['staging']['debug']   = 'false'; // string 型の値となります
$config['staging']['console'] = false; // boolean 型の値となります
$config['staging']['timeout'] = 30; // integer 型の値となります
?>