Zend_Config_Xml
ermöglicht es Entwicklern, Konfigurations-Daten in einfachen
XML-Dateien zu speichern und sie mit einer Syntax auszulesen, die dem Zugriff auf die
Eigenschaften verschachtelter Objekte entspricht. Der Name des Root-Elementes der XML-Datei
ist unwichtig und kann beliebig gewählt werden. Die erste Ebene der XML-Struktur stellt
die Konfigurationsdaten-Sektionen dar. Hirarchische Strukturen können im XLM-Format durch
Verschachteln von XML-Elementen unterhalb der Sektions-Ebene umgesetzt werden. Der Inhalt
eines XML-Blatt-Elementes (Leaf) ist der Wert eines Konfigurations-Eintrages. Die
Sektions-Vererbung wird durch ein spezielles Attribut namens extends
unterstützt, der Wert des Attributs entspricht dabei dem Namen der Sektion, von der Daten
geerbt werden sollen.
Rückgabe Typen | |
---|---|
Konfigurations-Daten, die in |
Beispiel 5.3. Zend_Config_Xml benutzen
Dieses Beispiel zeigt die grundlegende Nutzung von Zend_Config_Xml
um
Konfigurations-Daten aus einem XML-File zu laden. In diesem Beispiel gibt es
Konfigurations-Daten für ein Produktiv- und ein Staging-System. Da sich die Daten für
das Staging-System nur unwesentlich von denen für das Produktiv-System unterscheiden,
erbt das Staging-System vom Produktiv-System. In diesem Fall ist die Entscheidung
darüber, welche Sektion von welcher erben soll, willkürlich und es könnte auch anders
herum gemacht werden. In komplexeren Fällen ist das möglicherweise nicht der Fall.
Nehmen wir also an, dass sich die folgenden Konfigurations-Daten in der Datei
/path/to/config.xml
befinden:
<?xml version="1.0"?> <configdata> <production> <webhost>www.example.com</webhost> <database> <type>pdo_mysql</type> <host>db.example.com</host> <username>dbuser</username> <password>secret</password> <name>dbname</name> </database> </production> <staging extends="production"> <database> <host>dev.example.com</host> <username>devuser</username> <password>devsecret</password> </database> </staging> </configdata>
Nehmen wir weiterhin an, dass der Anwendungs-Entwickler die Staging-Konfiguration aus diesem XML-File benötigt. Es ist ein Leichtes, diese Daten zu laden, es muss nur das XML-File und die Staging-Sektion spezifiziert werden:
<?php require_once 'Zend/Config/Xml.php'; $config = new Zend_Config_Xml('/path/to/config.xml', 'staging'); echo $config->database->host; // gibt "dev.example.com" aus echo $config->database->name; // gibt "dbname" aus