<sect1 id="zend.config.introduction">
    <title>Introductie</title>
    <para>
        <code>Zend_Config</code> is ontworpen om de toegang tot en het gebruik van configuratiedata te
        vereenvoudigen voor webapplicaties. Het levert een op geneste object eigenschap gebaseerde gebruikers interface
        om toegang te krijgen tot de configuratie data vanuit de webapplicatie. De configuratie data kan van
        verschillende media komen die ondersteuning hebben van hiërarchische data opslag.
        Momenteel levert <code>Zend_Config</code> hulpklassen voor configuratiedata die in tekstbestanden wordt
        opgeslagen via <link linkend="zend.config.adapters.ini"><code>Zend_Config_Ini</code></link> en
        <link linkend="zend.config.adapters.xml"><code>Zend_Config_Xml</code></link>.
    </para>
     <example id="zend.config.introduction.example.using">
        <title>Zend_Config gebruiken zonder hulpklasse</title>
        <para>
            Normaal gesproken wordt er verondersteld dat gebruikers één van de hulpklassen als
            <link linkend="zend.config.adapters.ini"><code>Zend_Config_Ini</code></link> of
            <link linkend="zend.config.adapters.xml"><code>Zend_Config_Xml</code></link> zullen gebruiken,
            maar indien de configuratiedata in een PHP array is opgeslaan,
            kan je de data direct aan <code>Zend_Config</code> doorgeven om een eenvoudig object geörienteerde
            interface te gebruiken:
        </para>
        <programlisting role="php"><![CDATA[<?php
// Gegeven een array van configuratiedata
$configArray = array(
    'webhost'  => 'www.example.com',
    'database' => array(
        'adapter' => 'pdo_mysql',
        'params'  => array(
            'host'     => 'db.example.com',
            'username' => 'dbuser',
            'password' => 'secret',
            'dbname'   => 'mydatabase'
        )
    )
);

// De object geörienteerde wrapper over de configuratiedata aanmaken
require_once 'Zend/Config.php';
$config = new Zend_Config($configArray);

// Configuratiedata weergeven (resulteert in 'www.example.com')
echo $config->webhost;

// De configuratiedata gebruiken om een verbinding met de database
// tot stand te brenegen
$db = Zend_Db::factory($config->database->adapter,
                       $config->database->params->toArray());

// Alternatief gebruik: geef simpelweg het Zend_Config object mee.
// Zend_Db factory weet hoe het geinterpreteerd moet worden.
$db = Zend_Db::factory($config->database);]]></programlisting>
    </example>
    <para>
        Zoals in het voorbeeld hierboven is geïllustreerd, verstrekt <code>Zend_Config</code> een geneste
        objecteigenschap syntax om de configuratiedata aan te spreken die aan zijn constructor werd doorgegeven.
    </para>
    <para>
        Samen met de object geörienteerde toegang tot de data waardes, heeft <code>Zend_Config</code>
        ook <code>get()</code> welke de gegeven standaard waarde zal terug geven, als het data element
        niet bestaat. Als voorbeeld:
    </para>
    <programlisting role="php"><![CDATA[<?php
$host = $config->database->get('host', 'localhost');]]>
    </programlisting>
    <example id="zend.config.introduction.example.file.php">
        <title>Zend_Config gebruiken met een PHP configuratie bestand</title>
        <para>
            Het is vaak wenselijk om een puur op PHP gebaseerd configuratie bestand te gebruiken.
            De volgende code illustreerd hoe dat bereikt kan worden:
        </para>
        <programlisting role="php"><![CDATA[<?php
// config.php
return array(
    'webhost'  => 'www.example.com',
    'database' => array(
        'adapter' => 'pdo_mysql',
        'params'  => array(
            'host'     => 'db.example.com',
            'username' => 'dbuser',
            'password' => 'secret',
            'dbname'   => 'mydatabase'
        )
    )
);]]></programlisting>
        <programlisting role="php"><![CDATA[<?php
// Configuratie gebruiken
require_once 'Zend/Config.php';
$config = new Zend_Config(require 'config.php');

// Geeft een configuratie waarde weer (resulteert in 'www.example.com')
echo $config->webhost;]]></programlisting>
    </example>
</sect1>
<!--
vim:se ts=4 sw=4 et:
-->
