3.4. Zend_Config_Xml
Prev | Chapter 3. Zend_Config | Next

## 3.4. Zend_Config_Xml

### 3.4.1. Introduction

`Zend_Config_Xml` enables developers to store configuration data in a simple XML format and read them via object properties through `Zend_Config`.

Example 3.4. Configuration Data Stored in XML Files

This example illustrates a basic use of `Zend_Config_Xml` for loading configuration data from an XML file. Suppose we have the following configuration data in `/path/to/config.xml`:

    <?xml version="1.0"?>
    <config>
        <production>
            <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>
        </production>
        <staging extends="production">
            <database>
                <host>dev.example.com</host>
                <username>devuser</username>
                <password>devsecret</password>
            </database>
        </staging>
    </config>

Inheritance is supported in the XML syntax by using the `extends` attribute. The value of the `extends` attribute should be the name of the section from which the extending section is to inherit. The configuration data are then loaded from the XML file:

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

    $config = new Zend_Config(Zend_Config_Xml::load('/path/to/config.xml', 'staging'));

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

| Note
Configuration data values from `Zend_Config_Xml` are always treated as strings.

Prev | Up | Next
3.3. Zend_Config_Ini | Home | Chapter 4. Zend_Controller