Programmer's Reference Guide
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.
Jeder Konfigurationswert des Arrays wird zu einer Eigenschaft des Zend_Config Objektes.
Der Schlüssel wird als Name der Eigenschaft verwendet. Wenn ein Wert selbst ein Array ist, wird die
resultierende Eigenschaft des Objektes selbst als ein neues Zend_Config Objekt erstellt und
mit den Array Daten geladen. Das findet rekursiv statt, sodas hirarchische Konfigurationswerte mit einer
beliebigen Anzahl an Level erstellt werden können.
Zend_Config implementiert die Interfaces 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 eine
Ausnahme aus. Dieses Standard-Verhalten kann mit Hilfe des Konstruktors aber so überschrieben werden,
dass die Veränderung von Daten erlaubt ist. Wenn auch Änderungen erlaubt sind, unterstützt
Zend_Config das entfernen von Werten (z.B.
unset($config->database->host);). Die readOnly() Methode kann verwendet werden
um festzustellen ob Änderungen an einem gegebenen Zend_Config Objekt erlaubt sind und die
setReadOnly() kann verwendet werden um weitere Änderungen an einem Zend_Config
Objekt, das erstellt wurde und Änderungen erlaubt, zu verhindern.
![]() |
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.
Wenn zwei Zend_Config Objekte vorhanden sind, können diese in ein einzelnes Objekt
zusammengeführt werden indem die merge() Funktion verwendet wird. Angenommen es gibt
$config und $localConfig, kann $localConfig in $config
zusammengeführt werden indem $config->merge($localConfig); aufgerufen wird.
Die Elemente in $localConfig überschreiben gleichnamige Elemente in $config.
![]() |
Anmerkung |
|---|---|
Das |
Search the Manual
Components
Languages Available
Translation Status Reports
View the current status report of Zend Framework manual translations.

![[Anmerkung]](/images/note.gif)