Konfigurations-Daten werden dem Zend_Config
-Konstruktor als assoziatives Array zur Verfügung gestellt. Das Array kann mehrdimensional sein, um die Übergabe geordneter Daten zu unterstützen. Spezifische Adapter fungieren als Schnittstelle zwischen der Datenhaltung und dem Zend_Config
-Konstruktor, indem sie die Daten für diesen als Array aufbereiten. Es können auch direkt aus dem eigenen Code Arrays an den Zend_Config
-Konstruktor übergeben werden, ohne eine Adapter-Klasse zu benutzen. In manchen Situationen kann das angebracht sein.
Zend_Config
implementiert die Programmieradapter Countable
und Iterator
um den einfachen Zugriff auf Konfigurationsdaten zu gewährleisten. Dementsprechend kann man die count()
-Funktion und auch PHP-Konstrukte wie foreach
auf Zend_Config
-Objekte anwenden.
Standardmäßig gewährt Zend_Config
nur Lesezugriff auf die Daten und der Versuch einer Wertzuweisung (wie z. B. $config->database->host = 'example.com'
) löst einen Fehler aus. Dieses Standard-Verhalten kann mit Hilfe des Konstruktors aber so überschrieben werden, dass die Veränderung von Daten erlaubt ist.
Anmerkung | |
---|---|
Es muss angemerkt werden, dass hierbei nur die Daten im Speicher verändert werden. Es wird keine Änderung an den Konfigurations-Daten auf dem Speichermedium vorgenommen. Werkzeuge zur Veränderung gespeicherter Konfigurations-Daten liegen nicht im Bereich von |
Adapter-Klassen erben von der Zend_Config
-Klasse, da sie ihre Funktionalität nutzen.
Die Familie der Zend_Config
-Klassen ermöglicht es, Daten in Sektionen einzuteilen. Beim Initialisieren eines Zend_Config
-Adapter-Objektes können eine einzelne spezifizierte Sektion, mehrere spezifizierte Sektionen oder alle Sektionen (wenn keine spezifiziert ist) geladen werden.
Die Zend_Config
-Adapter-Klassen unterstützen ein Modell einfacher Vererbung, welches es ermöglicht, dass Konfigurations-Daten aus einer Sektion an eine Andere vererbt werden können. Dadurch kann die Notwendigeit doppelter Konfigurations-Daten für verschiedene Einsatzgebiete reduziert oder beseitigt werden. Eine erbende Sektion kann die von der Eltern-Sektion geerbten Werte auch überschreiben. Wie auch bei der Klassen-Vererbung in PHP kann eine Sektion von einer Eltern-Sektion geerbt werden, die wiederum von einer Großeltern-Sektion geerbt hat und so weiter. Mehrfaches Erben (Beispielsweise der Fall, dass Sektion C direkt von den Eltern-Sektionen A und B erbt) wird dagegen nicht unterstützt.