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.
parse_ini_file | |
---|---|
|
Schlüssel Trenner | |
---|---|
Standardmäßig ist das Schlüssel Trennzeichen der Punkt ( <?php require_once 'Zend/Config/Ini.php'; $config['nestSeparator'] = ':'; $config = new Zend_Config_Ini('/path/to/config.ini', 'staging', $config);
|
Beispiel 5.2. Zend_Config_Ini benutzen
Dieses Beispiel zeigt die grundlegende Nutzung von Zend_Config_Ini
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.ini
befinden:
; Konfigurations-Daten für die Produktiv-Site [production] webhost = www.example.com database.type = pdo_mysql database.host = db.example.com database.username = dbuser database.password = secret database.name = dbname ; Konfigurations-Daten für die Staging-Site, erbt von der Produktion ; und überschreibt Werte, wo nötig [staging : production] database.host = dev.example.com database.username = devuser database.password = devsecret
Nehmen wir weiterhin an, dass der Anwendungs-Entwickler die Staging-Konfiguration aus diesem INI-File benötigt. Es ist ein Leichtes, diese Daten zu laden, es muss nur das INI-File und die Staging-Sektion spezifiziert werden:
<?php require_once 'Zend/Config/Ini.php'; $config = new Zend_Config_Ini('/path/to/config.ini', 'staging'); echo $config->database->host; // gibt "dev.example.com" aus echo $config->database->name; // gibt "dbname" aus