3.3. Zend_Config_Ini

3.3.1. Inleiding

Zend_Config_Ini laat developeurs toe on configuratiedata in een gekend INI formaat op te slaan en ze te lezen via objecteigenschappen door middel van Zend_Config.

Voorbeeld 3.3. Configuratiedata Opgeslaan in INI Bestanden

Dit voorbeeld illustreert het basisgebruik van Zend_Config_Ini voor het laden van configuratiedata vanuit een INI bestand. Veronderstel dat we de volgende configuratiedata in een /pad/naar/config.ini bestand hebben:

; Productie site configuratiedata
[productie]
webhost           = www.example.com
database.type     = pdo_mysql
database.host     = db.example.com
database.username = dbuser
database.password = secret
database.name     = dbname

; Ontwikkelingssite configuratiedata erft van productiesite en
; overschrijft waardes waar nodig
[staging]
extends = productie
database.host     = dev.example.com
database.username = devuser
database.password = devsecret
            
[Opmerking] Opmerking
Merk op dat de syntax van het INI bestand lijkt op diegene die verwacht word door de parse_ini_file() PHP functie, die door Zend_Config_Ini wordt gebruikt. Kijk deze documentatie na om op de hoogte te zijn van het specifieke gedrag van Zend_Config_Ini, zoals hoe de speciale waarden true, false, yes, no, en null worden vertaald.

Erfelijkheid word ondersteund in de INI syntax door het gebruik van het keywoord extends. De waarde van de extends key moet dezelfde zijn als de naam van de sectie waarvan de verwijzende sectie moet overerven. De configuratiedata wordt dan ingeladen van het INI bestand:

<?php
require_once 'Zend/Config.php';
require_once 'Zend/Config/Ini.php';

$config = new Zend_Config(Zend_Config_Ini::load('/pad/naar/config.ini', 'staging'));

echo $config->database->host; // prints "dev.example.com"
?>