5.4. Zend_Config_Xml
Terug | Hoofdstuk 5. Zend_Config | Volgende

## 5.4. Zend_Config_Xml

`Zend_Config_Xml` laat programmeurs toe om configurateidate in een eenvoudig XML bestand op te slaan en deze via geneste objecteigenshap syntax te lezen. Het root element van het XML bestand is irrelevant en kan eender welke naam hebben. Het eerste niveau van de XML elementen komt overeen met configuratiedata secties. Het XML formaat ondersteunt hiërarchische organizatie via geneste XML elementen onder de sectieniveau elementen. De inhoud van een leaf-level XML element komt overeen met de waarde van een configuratiedata element. Sectie overerving wordt ondersteund via een speciaal XML attribuut genaamd `extends`, en de waarde van dit attribuut komt overeen met de naam van de sectie van dewelke data moet worden overgeërfd door de uitbreidende sectie.

| Opmerking
Configuratiedata die door `Zend_Config_Xml` word ingelezen wordt altijd als strings. Omzetting van data van strings naar andere types word aan de zorg van de programmeur overgelaten om aan hun specifieke behoeften te voldoen.

Voorbeeld 5.3. Zend_Config_Xml gebruiken

Dit voorbeeld illustreert een basisgebruik van `Zend_Config_Xml` voor het inladen van configuratiedata vanuit een XML bestand. In dit voorbeeld vind je configuratiedata voor zowel een productiesysteem als een preproductiesysteem. Vermits de preproductiesysteem configuratiedata sterk overeenkomt met de productieserver configuratiedata, erft de preproductieserver sectie van de productie sectie. In dit geval is de beslissing arbitrair en zou dit andersom kunnen worden geschreven, de productieserver sectie zou erven van de preproductieserver sectie, alhoewel het niet het geval zou kunnen zijn in meer complexe situaties. Veronderstel dan dat de volgende configuratiedata in `/path/to/config.xml` staat :

    <?xml version="1.0"?>
    <configdata>
        <productie>
            <webhost>www.example.com</webhost>
            <database>
                <type>pdo_mysql</type>
                <host>db.example.com</host>
                <username>dbuser</username>
                <password>secret</password>
                <name>dbname</name>
            </database>
        </productie>
        <preproductie extends="productie">
            <database>
                <host>dev.example.com</host>
                <username>devuser</username>
                <password>devsecret</password>
            </database>
        </preproductie>
    </configdata>

Veronderstel vervolgens dat de programmeur de preproductie configuratiedata van het XML bestand nodig heeft. Het is eenvoudig om die data in te laden door het XML bestand en de preproductie sectie te specifiëren :

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

    $config = new Zend_Config_Xml('/path/to/config.xml', 'preproductie');

    echo $config->database->host; // geeft "dev.example.com"
    echo $config->database->name; // geeft "dbname"

Terug | Omhoog | Volgende
5.3. Zend_Config_Ini | Begin | Hoofdstuk 6. Zend_Console_Getopt