Kapitel 5. Zend_Config

Inhaltsverzeichnis

5.1. Einleitung
5.2. Theory of Operation
5.3. Zend_Config_Ini
5.4. Zend_Config_Xml

5.1. Einleitung

Zend_Config wurde entworfen um den Zugriff auf und die Verwendung von Konfigurations-Daten zu vereinfachen. Zend_Config stellt diese Konfigurations-Daten innerhalb der Applikation über eine verschachtelte Objekt-Struktur zur Verfügung. Die Konfigurations-Daten können aus verschiedenen Datenquellen gelesen werden, die hierarchische Datenspeicherung unterstützen. Derzeit stellt Zend_Config mit Zend_Config_Ini und Zend_Config_Xml Adapter für das Einlesen von Daten aus Textfiles zur Verfügung.

Beispiel 5.1. Zend-Config ohne Adapter benutzen

In der Regel geht man davon aus, dass Anwender eine der Adapter-Klassen wie Zend_Config_Ini oder Zend_Config_Xml verwenden. Wenn die Konfigurations-Daten aber als PHP-Array vorliegen, können diese auch einfach an den Zend_Config-Konstruktor übergeben werden, um dann über die objektorientierte Schnittstelle auf sie zugreifen zu können:

<?php
// Gegeben ist ein Array mit Konfigurations-Daten
$configArray = array(
    'webhost' => 'www.example.com',
    'database' => array(
        'type'     => 'pdo_mysql',
        'host'     => 'db.example.com',
        'username' => 'dbuser',
        'password' => 'geheim',
        'name'     => 'dbname'
    )
);

// Erstelle das objektorientierte Interface zum Datenzugriff
require_once 'Zend/Config.php';
$config = new Zend_Config($configArray);

// Gebe einen Eintrag aus (Ausgabe ist 'www.example.com')
echo $config->webhost;

// Konfigurations-Daten benutzen, um eine Datenbank-Verbindung her zu stellen
$myApplicationObject->databaseConnect($config->database->type,
                                      $config->database->host,
                                      $config->database->username,
                                      $config->database->password,
                                      $config->database->name);

Wie das Beispiel oben zeigt, kann man über Zend_Config auf die Konfigurations-Daten aus dem übergebenen Array so zugreifen, wie auf die Eigenschaften einer verschachtelten Objekt-Struktur.