Zend_Config_Ini
ermöglicht es Entwicklern, Konfigurations-Daten in
einem vertrauten INI Format zu speichern und sie mit einer Syntax
auszulesen, die dem Zugriff auf die Eigenschaften verschachtelter Objekte entspricht. Das
verwendete INI Format bietet einerseits die Möglichkeit, Konfigurations
Daten hierarchisch abzulegen und andererseits Vererbung zwischen Sektionen zu
spezifizieren. Konfigurations-Daten-Hierarchien werden durch das Trennen der
Schlüsselwörter durch einen Punkt (.). Eine Sektion kann eine andere
Sektion erweitern oder beerben indem man nach dem Sektionsname einen Doppelpunkt
(:) notiert, gefolgt vom Namen der zu beerbenden Sektion.
Die Ini Datei parsen
Zend_Config_Ini
verwendet die PHP Funktion
parse_ini_file()
.
Deren Dokumentation klärt über spezielle Verhaltensweisen auf, die sich auch auf
Zend_Config_Ini
auswirken, z. B. wie die besonderen Werte
"TRUE
", "FALSE
", "yes", "no" und
"NULL
" gehandhabt werden.
Schlüssel Trenner
Standardmäßig ist das Schlüssel Trennzeichen der Punkt (.). Dies
kann geändert werden, indem der $options
Schlüssel
nestSeparator geändert wird, wenn das
Zend_Config_Ini
Objekt instanziert wird.
Zum Beispiel:
$options['nestSeparator'] = ':'; $config = new Zend_Config_Ini('/path/to/config.ini', 'staging', $options);
Beispiel 114. Zend_Config_Ini benutzen
Dieses Beispiel zeigt die grundlegende Nutzung von
Zend_Config_Ini
um Konfigurations-Daten aus einer
INI Datei 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.ini
befinden:
; Konfigurations-Daten für die Produktiv-Site [production] webhost = www.example.com database.adapter = pdo_mysql database.params.host = db.example.com database.params.username = dbuser database.params.password = secret database.params.dbname = dbname ; Konfigurations-Daten für die Staging-Site, erbt von der Produktion ; und überschreibt Werte, wo nötig [staging : production] database.params.host = dev.example.com database.params.username = devuser database.params.password = devsecret
Nehmen wir weiterhin an, dass der Anwendungs-Entwickler die Staging-Konfiguration aus dieser INI Datei benötigt. Es ist ein Leichtes, diese Daten zu laden, es muss nur die INI Datei und die Staging-Sektion spezifiziert werden:
$config = new Zend_Config_Ini('/path/to/config.ini', 'staging'); echo $config->database->params->host; // Ausgabe "dev.example.com" echo $config->database->params->dbname; // Ausgabe "dbname"
Anmerkung
Tabelle 39. Zend_Config_Ini Kontruktor Parameter
Parameter | Notizen |
---|---|
$filename |
Die INI Datei die geladen wird. |
$section |
Die [section] innerhalb der INI Datei die geladen
wird. Das Setzen dieses Parameters auf NULL lädt
alle Sektionen. Alternativ, kann ein Array von Sektionsnamen übergeben
werden um mehrere Sektionen zu laden.
|
$options (Default FALSE )
|
Options Array. Die folgenden Schlüssel werden unterstützt:
|