Zend_Config_Array
ermöglicht es Entwicklern, auf Konfigurations Daten, die in einem
mehrdimensionalen assoziativen PHP Array gespeichert sind, mit Hilfe der Objekt Eigenschaften durch
Zend_Config
zuzugreifen.
Beispiel 3.2. In einem PHP Array gespeicherte Konfigurations Daten
Dieses Beispiel zeigt die einfache Nutzung von Zend_Config_Array
für das Laden von
Konfigurations Daten aus einem PHP Array. Zuerst, wird ein PHP Array erstellt welches die
Konfigurations Daten enthält:
<?php // Konfigurations Daten der Produktions Site $config['production'] = array( 'webhost' => 'www.example.com', 'database' => array( 'type' => 'pdo_mysql', 'host' => 'db.example.com', 'username' => 'dbuser', 'password' => 'secret', 'name' => 'dbname' ) ); // Staging Site Konfigurations Daten vererbt von der Produktions Site und // Werte überladen wo notwenig $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'; ?>
Anmerkung | |
---|---|
Das Array mit den Konfigurations Daten muß im geladenen PHP Skript $config genannt werden.
|
Vererbung wird im obigen Beispiel durch eine Verknüpfung der production
Sektionswerte zu der
staging
Sektion unterstützt. Jetzt ist es eine einfache Angelegenheit die Konfigurations
Daten mit Zend_Config_Array
zu Laden:
<?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; // Druckt "dev.example.com" ?>
Es ist zu Beachten das alle Werte der Konfigurations Daten, weil diese direkt einem PHP Array
hinzugefügt werden, den selben Daten Typ haben, wie das im PHP Skript enthaltene
$config
Array.
<?php $config['staging']['debug'] = 'false'; // Der Wert ist ein String Typ $config['staging']['console'] = false; // Der Wert ist ein Boolean Typ $config['staging']['timeout'] = 30; // Der wert ist ein Integer Typ ?>