3.2. Zend_Config_Array

3.2.1. Introduction

Zend_Config_Array enables developers to have configuration data stored in multidimensional associative PHP arrays and accessed as object properties through Zend_Config.

例 3.2. Configuration Data Stored in PHP Arrays

This example illustrates a basic use of Zend_Config_Array for loading configuration data from PHP arrays. First, we need to create PHP arrays having the configuration data:

// Production site configuration data
$config['production'] = array(
    'webhost' => 'www.example.com',
    'database' => array(
        'type'     => 'pdo_mysql',
        'host'     => 'db.example.com',
        'username' => 'dbuser',
        'password' => 'secret',
        'name'     => 'dbname'

// Staging site configuration data inherits from production and
// overrides values as necessary
$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';

[注意] 注意
The configuration data array must be named $config in the loaded PHP script.

Inheritance is supported in the example above with an assignment of production section values to the staging section. Now it is a simple matter to load the configuration data with Zend_Config_Array:

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; // prints "dev.example.com"

It is noteworthy that because the configuration data are directly added to PHP arrays, each configuration data value has the same data type as given in the PHP script containing the $config array.

$config['staging']['debug']   = 'false'; // value has string type
$config['staging']['console'] = false; // value of boolean type
$config['staging']['timeout'] = 30; // value of integer type