<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect1 id="zend.config.introduction">
    <title>Introdução</title>

    <para>
        <classname>Zend_Config</classname> é projetado para simplificar o acesso e a utilização
        dos dados de configuração dentro das aplicações. Ele fornece uma propriedade do objeto
        aninhado baseado na interface de usuário para acessar dados de configuração no código do
        aplicativo. Os dados de configuração podem vir de uma variedade de meios de suporte para
        armazenamento de dados hierárquico. Atualmente <classname>Zend_Config</classname> fornece
        adaptadores para dados de configuração que são armazenados em arquivos de texto com
        <link linkend="zend.config.adapters.ini"><classname>Zend_Config_Ini</classname></link> e
        <link linkend="zend.config.adapters.xml"><classname>Zend_Config_Xml</classname></link>.
    </para>

    <example id="zend.config.introduction.example.using">
        <title>Usando o Zend_Config</title>

        <para>
            Normalmente, espera-se que os usuários usem uma das classes adaptadoras como <link
                linkend="zend.config.adapters.ini"><classname>Zend_Config_Ini</classname></link> ou
            <link linkend="zend.config.adapters.xml"><classname>Zend_Config_Xml</classname></link>,
            mas se os dados de configuração estão disponíveis em uma matriz <acronym>PHP</acronym>,
            pode-se simplesmente passar os dados para o construtor
            <classname>Zend_Config</classname> a fim de utilizar uma simples interface
            orientada a objetos:
        </para>

        <programlisting language="php"><![CDATA[
// Dada uma matriz de dados de configuração
$configArray = array(
    'webhost'  => 'www.example.com',
    'database' => array(
        'adapter' => 'pdo_mysql',
        'params'  => array(
            'host'     => 'db.example.com',
            'username' => 'dbuser',
            'password' => 'secret',
            'dbname'   => 'mydatabase'
        )
    )
);

// Create the object-oriented wrapper upon the configuration data
$config = new Zend_Config($configArray);

// Imprimir um dado de configuração (resulta em 'www.example.com')
echo $config->webhost;

// Utiliza os dados de configuração para se conectar ao banco de dados
$db = Zend_Db::factory($config->database->adapter,
                       $config->database->params->toArray());

// Uso alternativo: simplesmente passar o objeto Zend_Config.
// A fábrica do Zend_Db sabe como interpretá-lo.
$db = Zend_Db::factory($config->database);
]]></programlisting>
    </example>

    <para>
        Como ilustrado no exemplo acima, <classname>Zend_Config</classname> fornece a sintaxe da
        propriedade do objeto aninhado para acessar os dados de configuração passados para o
        construtor.
    </para>

    <para>
        Junto com o acesso orientado a objeto aos valores dos dados,
        <classname>Zend_Config</classname> também tem o <methodname>get()</methodname>, que
        retornará o valor padrão fornecido se o elemento do dado não existir. Por exemplo:
    </para>

    <programlisting language="php"><![CDATA[
$host = $config->database->get('host', 'localhost');
]]></programlisting>

    <example id="zend.config.introduction.example.file.php">
        <title>Usando o Zend_Config com um Arquivo de Configuração em PHP</title>

        <para>
            Muitas vezes é desejável utilizar um arquivo de configuração puramente em
            <acronym>PHP</acronym>. O código a seguir ilustra como isto pode ser
            realizado facilmente:
        </para>

        <programlisting language="php"><![CDATA[
// 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 language="php"><![CDATA[
// Consumo de configuração
$config = new Zend_Config(require 'config.php');

// Imprimir um dado de configuração (resulta em 'www.example.com')
echo $config->webhost;
]]></programlisting>
    </example>
</sect1>
<!--
vim:se ts=4 sw=4 et:
-->
