5.2. Werkingstheorie

Configuratiedata wordt toegankelijk gemaakt voor de Zend_Config constructor via een associatieve array. Deze kan multidimensioneel zijn om het organizeren van de data van alemeen naar specifiek te vergemakkelijken. Er bestaan concrete functies van de hulpklassen om de configuratiedata aan te passen vanuit het bestand om een associatieve array voor de constructor van Zend_Config aan te maken. Gebruikerscripts kunnen deze arrays direct doorgeven aan de constructor van Zend_Config, zonder een hulpklasse te gebruiken. Dit kan aangewezen zijn in sommige situaties.

Zend_Config implementeert de Countable en Iterator interfaces om eenvoudige toegang tot de configuratiedata te vergemakkeliken. Je kan dus de count() functie en PHP constructies zoals foreach gebruiken op Zend_Config objecten.

Standaard is de configuratiedata die beschikbaar wordt gemaakt via Zend_Config read-only, en het toewijzen van een waarde (bv: $config->database->host = 'example.com') resulteert in het opwerpen van een uitzondering (exception). Deze standaardeigenschap kan evenwel worden gewijzigd via de constructor om het wijzigen van waarden toe te staan.

[Opmerking] Opmerking

Het is belangrijk zulke in-memory wijzigingen niet te verwarren met het opslaan van configuratiedata in een specifieke opslagmedia. Werktuigen voor het aanmaken en wijzigen van configuratiedata voor de verschillende opslagmedia worden hier niet besproken, want ze zijn uit het bereik van Zend_Config. Open source toepassingen van derden zijn beschikbaar voor het aanmaken en wijzigen van configuratiedata voor verschillende opslagmedia.

Hulpklassen erven van de Zend_Config klasse vermits deze haar functionaliteiten gebruiken.

De familie van Zend_Config klassen staat de organizatie van configuratiedata in secties toe. Zend_Config hulpklasse objecten kunnen een enkele gespecifieerde sectie, verschillende gespecifieerde secties of alle secties (indien er geen sectie werd gespecifieerd) inladen.

Zend_Config hulpklassen ondersteunen een enkel ervingsmodel dat een configuratiedata sectie toelaat te erven van een andere sectie. Dit word verstrekt om het verdubbelen van configuratiedata voor verchillende doeleinden te verminderen of the verwijderen. Een ervende sectie kan ook de overgeërfde waarden overschrijven. Net zoals PHP klasse erving kan een sectie van een oudersectie erven, die van een grootouder erft en zo verder, maar veelvoudige overerving (bv: sectie C erft onmiddellijk van oudersecties A en B) wordt niet ondersteund.