Просмотр исходного кода

[DOCUMENTATION] Brazilian Portuguese

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@19351 44c647ce-9c0f-0410-b52a-842ac1e357ba
mauriciofauth 16 лет назад
Родитель
Сommit
bfd57d6d86

BIN
documentation/manual/pt-br/figures/zend.layout.quickstart.example.png


+ 255 - 0
documentation/manual/pt-br/module_specs/Zend_Layout-Advanced.xml

@@ -0,0 +1,255 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 17175 -->
+<!-- Reviewed: no -->
+<sect1 id="zend.layout.advanced">
+    <title>Uso Avançado de Zend_Layout</title>
+
+    <para>
+        <classname>Zend_Layout</classname> tem um número de casos de uso para o desenvolvedor
+        que deseja adaptá-lo para diferentes implementações de view, layouts de sistema de
+        arquivos, e mais.
+    </para>
+
+    <para>
+        Os principais pontos de extensão são:
+    </para>
+
+    <itemizedlist>
+        <listitem><para>
+                <emphasis>Custom view objects</emphasis>.
+                <classname>Zend_Layout</classname> permite a você utilizar qualquer classe
+                que implemente <classname>Zend_View_Interface</classname>.
+        </para></listitem>
+
+        <listitem><para>
+                <emphasis>Custom front controller plugins</emphasis>.
+                <classname>Zend_Layout</classname> vem embarcado com um front controller plugin
+                padrão que automatiza a renderização de layouts antes de retornar a resposta.
+                Você pode substituir por seu próprio plugin.
+        </para></listitem>
+
+        <listitem><para>
+                <emphasis>Custom action helpers</emphasis>.
+                <classname>Zend_Layout</classname> vem embarcado com um action helper
+                padrão que deve servir para a maioria das necessidades já que é um
+                proxy mudo para o próprio objeto de layout.
+        </para></listitem>
+
+        <listitem><para>
+                <emphasis>Custom layout script path resolution</emphasis>.
+                <classname>Zend_Layout</classname> permite a você usar seu próprio
+                <link linkend="zend.filter.inflector">inflector</link> para resolução do
+                caminho do script de layout, ou simplesmente modificar o inflector
+                anexado para especificar suas próprias regras de inflexão.
+        </para></listitem>
+    </itemizedlist>
+
+    <sect2 id="zend.layout.advanced.view">
+        <title>Objetos View Customizados</title>
+
+        <para>
+            <classname>Zend_Layout</classname> permite a você usar qualquer classe
+            que implemente <classname>Zend_View_Interface</classname> ou estenda
+            <classname>Zend_View_Abstract</classname> para renderizar seu script de layout.
+            Simplesmente passe seu objeto view customizado como um parâmetro para
+            o construtor/<methodname>startMvc()</methodname>, ou configure o
+            usando o acessor <methodname>setView()</methodname>:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+$view = new My_Custom_View();
+$layout->setView($view);
+]]></programlisting>
+
+        <note>
+            <title>Nem todas as implementações de Zend_View são iguais</title>
+
+            <para>
+                Enquanto <classname>Zend_Layout</classname> permite que você use qualquer
+                classe que implemente <classname>Zend_View_Interface</classname>, você pode
+                entrar bem se elas não puderem utilizar os vários helpers
+                <classname>Zend_View</classname>, particularmente os helpers layout e
+                <link linkend="zend.view.helpers.initial.placeholder">placeholder</link>. Isso
+                ocorre porque <classname>Zend_Layout</classname> torna o conjunto de variáveis
+                no objeto disponível via ele mesmo e
+                <link linkend="zend.view.helpers.initial.placeholder">placeholders</link>.
+            </para>
+
+            <para>
+                Se você precisa usar uma implementação customizada de
+                <classname>Zend_View</classname> que não suporta esses helpers, você precisará
+                descobrir um modo de obter as variáveis de layout para o view. Isso pode
+                ser feito ou pela extensão do objeto <classname>Zend_Layout</classname> com
+                alteração do método <methodname>render()</methodname> para passar variáveis
+                para o view, ou criando sua própria classe plugin
+                que as passa antes de renderizar o layout.
+            </para>
+
+            <para>
+                Alternativamente, se sua implementação de view suporta qualquer espécie de
+                capacidade do plugin, você pode acessar as variáveis por
+                meio do placeholder 'Zend_Layout' usando o
+                <link linkend="zend.view.helpers.initial.placeholder">helper placeholder</link>:
+            </para>
+
+            <programlisting language="php"><![CDATA[
+$placeholders = new Zend_View_Helper_Placeholder();
+$layoutVars   = $placeholders->placeholder('Zend_Layout')->getArrayCopy();
+]]></programlisting>
+        </note>
+    </sect2>
+
+    <sect2 id="zend.layout.advanced.plugin">
+        <title>Plugins Front Controller Customizados</title>
+
+        <para>
+            Quando o usamos com os componentes <acronym>MVC</acronym>,
+            <classname>Zend_Layout</classname> registra um plugin front controller que
+            renderiza o layout como a última ação antes de abandonar o laço de despacho.
+            Na maioria dos casos, o plugin padrão servirá, mas você se você desejar escrever
+            o seu próprio, você pode especificar o nome da classe plugin a ser carregada
+            carregar pela passagem da opção <code>pluginClass</code> ao método
+            <methodname>startMvc()</methodname>.
+        </para>
+
+        <para>
+            Qualquer classe plugin que você escrever para esse propósito precisará estender
+            <classname>Zend_Controller_Plugin_Abstract</classname>, e deverá aceitar uma
+            instância de objeto layout como um argumento para o construtor. Caso contrário,
+            os detalhes de sua implementação ficarão acima de você.
+        </para>
+
+        <para>
+            A classe plugin padrão usada é
+            <classname>Zend_Layout_Controller_Plugin_Layout</classname>.
+        </para>
+    </sect2>
+
+    <sect2 id="zend.layout.advanced.helper">
+        <title>Action Helpers Customizados</title>
+
+        <para>
+            Quando o usamos com componentes <acronym>MVC</acronym>,
+            <classname>Zend_Layout</classname> registra um helper action controller com o
+            helper broker. O helper padrão,
+            <classname>Zend_Layout_Controller_Action_Helper_Layout</classname>,
+            age como um proxy mudo para a própria instância do objeto de layout,
+            e deve servir para a maioria dos casos de uso.
+        </para>
+
+        <para>
+            Se você sentir necessidade de escrever funcionalidades customizadas,
+            simplesmente escreva uma classe action helper estendendo
+            <classname>Zend_Controller_Action_Helper_Abstract</classname> e passe o nome da
+            classe como uma opção <code>helperClass</code> para o método
+            <methodname>startMvc()</methodname>. Detalhes da implementação ficarão
+            acima de você.
+        </para>
+    </sect2>
+
+    <sect2 id="zend.layout.advanced.inflector">
+        <title>Resolução de Caminho de Script de Layout Customizada: Usando o Inflector</title>
+
+        <para>
+            <classname>Zend_Layout</classname> usa <classname>Zend_Filter_Inflector</classname>
+            para estabelecer uma cadeia de filtro para traduzir um nome de layout para caminho
+            de script de layout. Por padrão, ela usa as regras 'Word_CamelCaseToDash' seguida
+            por 'StringToLower', e o sufixo 'phtml' para transformar o nome em um caminho.
+            Alguns exemplos:
+        </para>
+
+        <itemizedlist>
+            <listitem><para>
+                    'foo' será transformado em 'foo.phtml'.
+            </para></listitem>
+
+            <listitem><para>
+                    'FooBarBaz' será transformado em 'foo-bar-baz.phtml'.
+            </para></listitem>
+        </itemizedlist>
+
+        <para>
+            Você tem três opções para modificar inflexão: modificar o alvo de inflexão
+            e/ou sufixo da view via acessores de <classname>Zend_Layout</classname>, modificar
+            as regras do inflector e alvo do inflector associado com a instância
+            <classname>Zend_Layout</classname>, ou criar sua própria instância de inflector
+            e passá-la para <methodname>Zend_Layout::setInflector()</methodname>.
+        </para>
+
+        <example id="zend.layout.advanced.inflector.accessors">
+            <title>Usando acessores Zend_Layout para modificar o inflector</title>
+
+            <para>
+                O inflector <classname>Zend_Layout</classname> padrão usa referências estáticas
+                para o alvo e sufixo de view script, e tem acessores para configurar esses valores.
+            </para>
+
+            <programlisting language="php"><![CDATA[
+// Configure o alvo do inflector:
+$layout->setInflectorTarget('layouts/:script.:suffix');
+
+// Configura o sufixo do view script de layout:
+$layout->setViewSuffix('php');
+]]></programlisting>
+        </example>
+
+        <example id="zend.layout.advanced.inflector.directmodification">
+            <title>Modificação direta do inflector Zend_Layout</title>
+
+            <para>
+                Inflectores tem um alvo e uma ou mais regras. O alvo padrão usado com
+                <classname>Zend_Layout</classname> é ':script.:suffix'; ':script' passa o nome
+                do layout registrado, enquanto ':suffix' é uma regra estática do inflector.
+            </para>
+
+            <para>
+                Digamos que você queira que o script de layout termine no sufixo 'html',
+                e que você queira separar palavras MixedCase e camelCased com underscores
+                ao invés de hífens, e não deixe o nome em caixa baixa. Adicionalmente,
+                você quer procurar em um subdiretório 'layouts' pelo script.
+            </para>
+
+            <programlisting language="php"><![CDATA[
+$layout->getInflector()->setTarget('layouts/:script.:suffix')
+                       ->setStaticRule('suffix', 'html')
+                       ->setFilterRule(array('Word_CamelCaseToUnderscore'));
+]]></programlisting>
+        </example>
+
+        <example id="zend.layout.advanced.inflector.custom">
+            <title>Inflectores Customizados</title>
+
+            <para>
+                Na maioria dos casos, modificar o inflector existente será suficiente.
+                Entretanto, você pode ter um inflector que você deseja usar em diversos
+                lugares, com diferentes objetos de diferentes tipos.
+                <classname>Zend_Layout</classname> suporta isso.
+            </para>
+
+            <programlisting language="php"><![CDATA[
+$inflector = new Zend_Filter_Inflector('layouts/:script.:suffix');
+$inflector->addRules(array(
+    ':script' => array('Word_CamelCaseToUnderscore'),
+    'suffix'  => 'html'
+));
+$layout->setInflector($inflector);
+]]></programlisting>
+        </example>
+
+        <note>
+            <title>Inflexão pode ser desabilitada</title>
+
+            <para>
+                Inflexão pode ser desabilitada e habilitada usando acessores no objeto
+                <classname>Zend_Layout</classname>. Isso pode ser útil se você quiser especificar
+                um caminho absoluto para um view script de layout, ou saber que o mecanismo
+                que você usará para especificar o script de layout não precisa de inflexão.
+                Simplesmente use os métodos <methodname>enableInflection()</methodname> e
+                <methodname>disableInflection()</methodname>.
+            </para>
+        </note>
+    </sect2>
+</sect1>
+<!--
+vim:se ts=4 sw=4 et:
+-->

+ 53 - 0
documentation/manual/pt-br/module_specs/Zend_Layout-Introduction.xml

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 17175 -->
+<!-- Reviewed: no -->
+<sect1 id="zend.layout.introduction">
+    <title>Introdução</title>
+
+    <para>
+        <classname>Zend_Layout</classname> implementa um clássico padrão de projeto
+        Two Step View, permitindo aos desenvolvedores empacotar o conteúdo da aplicação
+        dentro de outra view, geramente representando o template do site. Tais templates
+        são freqüentemente denominados de <emphasis>layouts</emphasis> por outros projetos,
+        e Zend Framework adotou esse termo por consistência.
+    </para>
+
+    <para>
+        Os objetivos globais de <classname>Zend_Layout</classname> são os seguintes:
+    </para>
+
+    <itemizedlist>
+        <listitem><para>
+                Automatizar seleção e renderização de layouts quando usado com os componentes
+                <acronym>MVC</acronym> do Zend Framework.
+        </para></listitem>
+
+        <listitem><para>
+                Fornecer escopo separado para variáveis relacionadas ao layout e ao conteúdo.
+        </para></listitem>
+
+        <listitem><para>
+                Permitir configuração, incluindo o nome do layout, a resolução do script de
+                layout (inflection), e o caminho do script de layout.
+        </para></listitem>
+
+        <listitem><para>
+                Permitir a desabilitação de layouts, mudança de scripts de layout,
+                e outros estados; permitir essas ações de dentro de action controllers
+                e view scripts.
+        </para></listitem>
+
+        <listitem><para>
+                Seguir as mesmas regras de resolução de script (inflection) que <link
+                linkend="zend.controller.actionhelpers.viewrenderer">ViewRenderer</link>,
+                mas permitir também o uso de regras diferentes.
+        </para></listitem>
+
+        <listitem><para>
+                Permitir o uso sem os componentes <acronym>MVC</acronym> do Zend Framework.
+        </para></listitem>
+    </itemizedlist>
+</sect1>
+<!--
+vim:se ts=4 sw=4 et:
+-->

+ 209 - 0
documentation/manual/pt-br/module_specs/Zend_Layout-Options.xml

@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 17175 -->
+<!-- Reviewed: no -->
+<sect1 id="zend.layout.options">
+    <title>Opções de Configuração Zend_Layout</title>
+
+    <para>
+        <classname>Zend_Layout</classname> tem uma variedade de opções de configuração. Essas
+        podem ser configuradas chamando os acessores apropriados, passando uma matriz ou objeto
+        <classname>Zend_Config</classname> para o construtor ou
+        <methodname>startMvc()</methodname>, passando uma matriz de opções para
+        <methodname>setOptions()</methodname>, ou passando um objeto
+        <classname>Zend_Config</classname> para <methodname>setConfig()</methodname>.
+    </para>
+
+    <itemizedlist>
+        <listitem><para>
+                <emphasis>layout</emphasis>: o layout a ser usado. Utiliza o inflector atual para
+                resolver o nome fornecido para o view script de layout apropriado. Por padrão,
+                esse valor é 'layout' e resolve para 'layout.phtml'. Os acessores são
+                <methodname>setLayout()</methodname> e <methodname>getLayout()</methodname>.
+        </para></listitem>
+
+        <listitem><para>
+                <emphasis>layoutPath</emphasis>: o caminho base para os view scripts
+                de layout. Os acessores são <methodname>setLayoutPath()</methodname> e
+                <methodname>getLayoutPath()</methodname>.
+        </para></listitem>
+
+        <listitem><para>
+                <emphasis>contentKey</emphasis>: a variável de layout usada para o conteúdo
+                padrão (quando usado com o <acronym>MVC</acronym>). O valor padrão é 'content'.
+                Os acessores são <methodname>setContentKey()</methodname> e
+                <methodname>getContentKey()</methodname>.
+        </para></listitem>
+
+        <listitem><para>
+                <emphasis>mvcSuccessfulActionOnly</emphasis>: quando usar o
+                <acronym>MVC</acronym>, se uma ação lança uma exceção e esse marco
+                é verdadeiro, o layout não será renderizado (isso é para
+                prevenir dupla renderização do layout quando o <link
+                linkend="zend.controller.plugins.standard.errorhandler">ErrorHandler plugin</link>
+                estiver em uso). Por padrão, o marco é verdadeiro. Os acessores são
+                <methodname>setMvcSuccessfulActionOnly()</methodname> e
+                <methodname>getMvcSuccessfulActionOnly()</methodname>.
+        </para></listitem>
+
+        <listitem><para>
+                <emphasis>view</emphasis>: O objeto view para ser usado na renderização.
+                Quando usado com o <acronym>MVC</acronym>, <classname>Zend_Layout</classname>
+                tentará usar o objeto view registrado com o
+                <link linkend="zend.controller.actionhelpers.viewrenderer">ViewRenderer</link>
+                se nenhum objeto view tiver sido passado explicitamente. Os acessores são
+                <methodname>setView()</methodname> e <methodname>getView()</methodname>.
+        </para></listitem>
+
+        <listitem><para>
+                <emphasis>helperClass</emphasis>: a classe action helper para usar quando
+                <classname>Zend_Layout</classname> estiver utilizando os componentes
+                <acronym>MVC</acronym>. Por padrão, ela é
+                <classname>Zend_Layout_Controller_Action_Helper_Layout</classname>.
+                Os acessores são <methodname>setHelperClass()</methodname> e
+                <methodname>getHelperClass()</methodname>.
+        </para></listitem>
+
+        <listitem><para>
+                <emphasis>pluginClass</emphasis>: a classe front controller plugin para usar
+                quando <classname>Zend_Layout</classname> estiver utilizando os componentes
+                <acronym>MVC</acronym>. Por padrão, ela é
+                <classname>Zend_Layout_Controller_Plugin_Layout</classname>. Os acessores são
+                <methodname>setPluginClass()</methodname> e <methodname>getPluginClass()</methodname>.
+        </para></listitem>
+
+        <listitem><para>
+                <emphasis>inflector</emphasis>: o inflector a ser usado quando resolver
+                nomes para caminhos de view scripts de layout; veja
+                <link linkend="zend.layout.advanced.inflector">a documentação
+                <classname>Zend_Layout</classname> inflector para mais detalhes</link>. Os
+                acessores são <methodname>setInflector()</methodname> e
+                <methodname>getInflector()</methodname>.
+        </para></listitem>
+    </itemizedlist>
+
+    <note>
+        <title>helperClass e pluginClass devem ser passados para startMvc()</title>
+
+        <para>
+            Para que as configurações <code>helperClass</code> e <code>pluginClass</code>
+            tenham efeito, elas devem ser passadas como opções para
+            <methodname>startMvc()</methodname>; se forem configuradas mais tarde,
+            elas não tem efeito.
+        </para>
+    </note>
+
+    <sect2 id="zend.layout.options.examples">
+        <title>Exemplos</title>
+
+        <para>
+            Os seguintes exemplos assumem a seguinte matriz <varname>$options</varname>
+            e objeto <varname>$config</varname>:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+$options = array(
+    'layout'     => 'foo',
+    'layoutPath' => '/path/to/layouts',
+    'contentKey' => 'CONTENT',           // ignorado quando o MVC não é usado
+);
+]]></programlisting>
+
+        <programlisting language="php"><![CDATA[
+/**
+[layout]
+layout = "foo"
+layoutPath = "/path/to/layouts"
+contentKey = "CONTENT"
+*/
+$config = new Zend_Config_Ini('/path/to/layout.ini', 'layout');
+]]></programlisting>
+
+        <example id="zend.layout.options.examples.constructor">
+            <title>Passando opções para o construtor ou startMvc()</title>
+
+            <para>
+                Tanto o construtor quanto o método estático <methodname>startMvc()</methodname>
+                podem aceitar tanto uma matriz de opções quanto um objeto
+                <classname>Zend_Config</classname> com opções de modo a configurar
+                a instância de <classname>Zend_Layout</classname>.
+            </para>
+
+            <para>
+                Primeiro, dê uma olhada na passagem de uma matriz:
+            </para>
+
+            <programlisting language="php"><![CDATA[
+// Usando um construtor:
+$layout = new Zend_Layout($options);
+
+// Usando startMvc():
+$layout = Zend_Layout::startMvc($options);
+]]></programlisting>
+
+            <para>
+                E agora usando um objeto config:
+            </para>
+
+            <programlisting language="php"><![CDATA[
+$config = new Zend_Config_Ini('/path/to/layout.ini', 'layout');
+
+// Usando construtor:
+$layout = new Zend_Layout($config);
+
+// Usando startMvc():
+$layout = Zend_Layout::startMvc($config);
+]]></programlisting>
+
+            <para>
+                Basicamente, esse é o modo mais fácil de customizar sua instância
+                <classname>Zend_Layout</classname>.
+            </para>
+        </example>
+
+        <example id="zend.layout.options.examples.setoptionsconfig">
+            <title>Usando setOption() e setConfig()</title>
+
+            <para>
+                Algumas vezes você precisa configurar o objeto <classname>Zend_Layout</classname>
+                depois que ele já foi instanciado; <methodname>setOptions()</methodname> e
+                <methodname>setConfig()</methodname> dão a você um modo fácil
+                e rápido de fazer isso:
+            </para>
+
+            <programlisting language="php"><![CDATA[
+// Usando uma matriz de opções:
+$layout->setOptions($options);
+
+// Usando um objeto Zend_Config:
+$layout->setConfig($options);
+]]></programlisting>
+
+            <para>
+                Note, entretanto, que certas opções, tais como <code>pluginClass</code> e
+                <code>helperClass</code>, não serão afetadas quando a passagem for feita
+                por esse método; elas precisam ser passadas ao construtor ou método
+                <methodname>startMvc()</methodname>.
+            </para>
+        </example>
+
+        <example id="zend.layout.options.examples.accessors">
+            <title>Usando Acessores</title>
+
+            <para>
+                Finalmente, você pode também configurar sua instância
+                <classname>Zend_Layout</classname> via acessores. Todos os acessores
+                implementam uma interface fluente, significando que suas chamadas
+                podem ser encadeadas:
+            </para>
+
+            <programlisting language="php"><![CDATA[
+$layout->setLayout('foo')
+       ->setLayoutPath('/path/to/layouts')
+       ->setContentKey('CONTENT');
+]]></programlisting>
+        </example>
+    </sect2>
+</sect1>
+<!--
+vim:se ts=4 sw=4 et:
+-->

+ 276 - 0
documentation/manual/pt-br/module_specs/Zend_Layout-QuickStart.xml

@@ -0,0 +1,276 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 17175 -->
+<!-- Reviewed: no -->
+<sect1 id="zend.layout.quickstart">
+    <title>Guia Rápido Zend_Layout</title>
+
+    <para>
+        Há dois casos de uso primários para <classname>Zend_Layout</classname>: com o
+        <acronym>MVC</acronym> do Zend Framework, e sem.
+    </para>
+
+    <sect2 id="zend.layout.quickstart.layouts">
+        <title>Scripts de Layout</title>
+
+        <para>
+            Em ambos os casos, entrentanto, você precisará criar um script de layout.
+            Scripts de layout simplesmente utilizam <classname>Zend_View</classname> (ou
+            qualquer outra implementação de view que você esteja usando). Variáveis de layout são
+            registradas com um <link linkend="zend.view.helpers.initial.placeholder">marcador</link>
+            <classname>Zend_Layout</classname>, e podem ser acessadas via helper de marcador
+            ou buscando-as como propriedades de objeto do objeto layout via helper de layout.
+        </para>
+
+        <para>
+            Como um exemplo:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+<!DOCTYPE html
+    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>Meu Site</title>
+</head>
+<body>
+<?php
+    // busca a chave 'content' usando um helper de layout:
+    echo $this->layout()->content;
+
+    // busca a chave 'foo' usando um helper marcador:
+    echo $this->placeholder('Zend_Layout')->foo;
+
+    // busca o objeto de layout e recupera várias chaves dele:
+    $layout = $this->layout();
+    echo $layout->bar;
+    echo $layout->baz;
+?>
+</body>
+</html>
+]]></programlisting>
+
+        <para>
+            Como <classname>Zend_Layout</classname> utiliza <classname>Zend_View</classname> para
+            renderização, Você pode também usar quaisquer helpers de view registradas, e também
+            ter acesso a quaisquer variáveis de view associadas. Particularmente útil são os
+            vários <link linkend="zend.view.helpers.initial.placeholder">helpers marcadores</link>,
+            que permitem a você recuperar conteúdo para áreas tais como a seção &lt;head&gt;,
+            navegação, etc.:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+<!DOCTYPE html
+    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <?php echo $this->headTitle() ?>
+    <?php echo $this->headScript() ?>
+    <?php echo $this->headStyle() ?>
+</head>
+<body>
+    <?php echo $this->render('header.phtml') ?>
+
+    <div id="nav"><?php echo $this->placeholder('nav') ?></div>
+
+    <div id="content"><?php echo $this->layout()->content ?></div>
+
+    <?php echo $this->render('footer.phtml') ?>
+</body>
+</html>
+]]></programlisting>
+    </sect2>
+
+    <sect2 id="zend.layout.quickstart.mvc">
+        <title>Usando Zend_Layout com o MVC do Zend Framework</title>
+
+        <para>
+            <classname>Zend_Controller</classname> oferece um rico conjunto de funcionalidades
+            para extensão por meio de seus <link
+            linkend="zend.controller.plugins">front controller plugins</link> e <link
+            linkend="zend.controller.actionhelpers">action controller helpers</link>.
+            <classname>Zend_View</classname> também tem <link
+            linkend="zend.view.helpers">helpers</link>. <classname>Zend_Layout</classname>
+            toma vantagem desses diversos pontos de extensão quando usado com os
+            componentes <acronym>MVC</acronym>.
+        </para>
+
+        <para>
+            <methodname>Zend_Layout::startMvc()</methodname> cria uma instância de
+            <classname>Zend_Layout</classname> com qualquer configuração opcional que
+            você fornecer. Ele registra então um front controller plugin que renderiza o
+            layout com qualquer conteúdo de aplicação uma vez que o laço de despacho foi feito,
+            e registra um action helper para permitir o acesso ao objeto layout a partir de seus
+            action controllers. Adicionalmente, você pode a qualquer tempo pegar a instância de
+            dentro de um view script usando o view helper <code>layout</code>.
+        </para>
+
+        <para>
+            Primeiro, dê uma olhada em como inicializar <classname>Zend_Layout</classname>
+            para uso com o <acronym>MVC</acronym>:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+// Em seu bootstrap:
+Zend_Layout::startMvc();
+]]></programlisting>
+
+        <para>
+            <methodname>startMvc()</methodname> pode tomar uma matriz opcional de opções ou
+            um objeto <classname>Zend_Config</classname> para customizar a instância; essas
+            opções são detalhadas na <xref linkend="zend.layout.options" />.
+        </para>
+
+        <para>
+            Em um action controller, você pode então acessar a instância de
+            layout como um action helper:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+class FooController extends Zend_Controller_Action
+{
+    public function barAction()
+    {
+        // desabilita layouts para este action:
+        $this->_helper->layout->disableLayout();
+    }
+
+    public function bazAction()
+    {
+        // usa um script de layout diferente com este action:
+        $this->_helper->layout->setLayout('foobaz');
+    };
+}
+]]></programlisting>
+
+        <para>
+            Em seus view scripts, você pode então acessar o objeto de <code>layout</code>
+            via view helper layout. Esse view helper é levemente diferente dos outros
+            no que toca a não tomar argumentos, e retornar um objeto ao invés de um valor
+            string. Isso permite que você imediatamente chame métodos no objeto de layout:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+<?php $this->layout()->setLayout('foo'); // configura layout alternativo ?>
+]]></programlisting>
+
+        <para>
+            A qualquer tempo, você pode buscar a instância de <classname>Zend_Layout</classname>
+            registrada com <acronym>MVC</acronym> via método estático
+            <methodname>getMvcInstance()</methodname>:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+// Retorna null se startMvc() não foi o primeiro a ser chamado
+$layout = Zend_Layout::getMvcInstance();
+]]></programlisting>
+
+        <para>
+            Finalmente, o front controller plugin de <classname>Zend_Layout</classname> tem
+            uma importante característica em adição a renderização do layout: ele recupera
+            todos os segmentos nomeados do objeto de resposta e associa variáveis,
+            associando o segmento 'default' a variável 'content'. Isso permite a você acessar
+            o conteúdo de sua aplicação e renderizá-lo em seus view scripts.
+        </para>
+
+        <para>
+            Como um exemplo, diremos que seu código primeiro ativa
+            <methodname>FooController::indexAction()</methodname>, que renderiza algum
+            conteúdo para o segmento de resposta padrão, e então prossegue para
+            <methodname>NavController::menuAction()</methodname>, que renderiza conteúdo
+            para o segmento de resposta 'nav'. Finalmente, você prossegue para
+            <methodname>CommentController::fetchAction()</methodname> e busca alguns comentários,
+            mas renderizar isso para o segmento de resposta é bom (o que adiciona conteúdo
+            aquele segmento). Seu view script poderia então renderizar cada um separadamente:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+<body>
+    <!-- renders /nav/menu -->
+    <div id="nav"><?php echo $this->layout()->nav ?></div>
+
+    <!-- renders /foo/index + /comment/fetch -->
+    <div id="content"><?php echo $this->layout()->content ?></div>
+</body>
+]]></programlisting>
+
+        <para>
+            Essa característica é particularmente útil quando usada em conjunção com o
+            <link linkend="zend.controller.actionhelpers.actionstack">action helper</link> e
+            <link linkend="zend.controller.plugins.standard.actionstack">plugin</link>
+            ActionStack, o qual você pode usar para configurar uma pilha de ações através da
+            qual itertamos, e então criamos páginas widgetizadas.
+        </para>
+    </sect2>
+
+    <sect2 id="zend.layout.quickstart.standalone">
+        <title>Usando Zend_Layout como um Componente</title>
+
+        <para>
+            Como um componente autônomo, <classname>Zend_Layout</classname> não oferece tantas
+            características ou tanta conveniência como quanto é usado com o
+            <acronym>MVC</acronym>. Entretanto, ele ainda tem dois benefícios a destacar:
+        </para>
+
+        <itemizedlist>
+            <listitem><para>
+                    Escopo de variáveis de layout.
+            </para></listitem>
+
+            <listitem><para>
+                    Isolamento do view script de layout de outros scripts view.
+            </para></listitem>
+        </itemizedlist>
+
+        <para>
+            Quando usado como um componente autônomo, simplesmente inicie o objeto layout,
+            use os vários acessores para configurar estado, configure variáveis como
+            propriedades de objeto, e renderize o layout:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+$layout = new Zend_Layout();
+
+// Configura um caminho de script de layout:
+$layout->setLayoutPath('/path/to/layouts');
+
+// Configura algumas variáveis:
+$layout->content = $content;
+$layout->nav     = $nav;
+
+// Escolhe um script de layout diferente:
+$layout->setLayout('foo');
+
+// Renderiza o layout final
+echo $layout->render();
+]]></programlisting>
+    </sect2>
+
+    <sect2 id="zend.layout.quickstart.example">
+        <title>Exemplo de Layout</title>
+
+        <para>
+            Algumas vezes uma imagem vale mais que mil palavras. A seguir temos
+            um exemplo de um script de layout.
+        </para>
+
+         <para>
+            <inlinegraphic align="center" valign="middle"
+                fileref="figures/zend.layout.quickstart.example.png" format="PNG" />
+        </para>
+
+        <para>
+            A ordem real dos elementos pode variar, dependendo do <acronym>CSS</acronym> que
+            você tenha configurado; por exemplo, se você está usando posicionamento absoluto,
+            você pode ser capaz de ter a navegação exibida mais tarde no documento, mas ainda
+            mostrar-se no topo; o mesmo poderia ser dito para a barra lateral ou o cabeçalho.
+            A mecância real de puxar o conteúdo permanece a mesma, entretanto.
+        </para>
+    </sect2>
+</sect1>
+<!--
+vim:se ts=4 sw=4 et:
+-->

+ 5 - 2
documentation/manual/pt-br/ref/copyrights.xml

@@ -1,8 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 14978 -->
+<!-- Reviewed: no -->
 <appendix id="copyrights">
-    <title>Informação de Direitos Autorais</title>
+    <title>Informações Sobre Direitos Autorais</title>
 
     <para>
-       Os seguintes direitos autorais são aplicáveis a parcelas do Framework Zend.
+        Os seguintes direitos autorais são aplicáveis a parcelas do Zend Framework.
     </para>
 
     <para>

+ 116 - 449
documentation/manual/pt-br/ref/requirements.xml

@@ -1,465 +1,132 @@
-<appendix id="requirements">
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 18786 -->
+<!-- Reviewed: no -->
+<appendix id="requirements" xmlns:xi="http://www.w3.org/2001/XInclude">
 
-    <title>Requisitos do Sistema</title>
+    <title>Pré-requisitos do Zend Framework</title>
 
-    <para>
-        Está seção documenta os requisitos do Zend Framework.
-    </para>
+    <sect1 id="requirements.introduction">
 
-    <sect1 id="requirements.version">
-
-        <title>Versão requerida do PHP</title>
+        <title>Introdução</title>
 
         <para>
-            Zend Framework requer PHP 5.1.4 ou superior. Algumas interfaces
-            SPL como <code>Countable</code> não estão estáveis nas versões
-            anteriores do PHP.
+            Zend Framework requer um interpretador de <acronym>PHP</acronym> 5 com um servidor
+            web configurado para trabalhar corretamente com scripts <acronym>PHP</acronym>.
+            Algumas funcionalidades requerem extensões adicionais ou recursos do servidor web;
+            na maioria dos casos o framework pode ser usado sem eles, embora o desempenho possa
+            cair ou os recursos auxiliares não ficarem totalmente funcionais. Um exemplo dessa
+            dependência é o mod_rewrite em um ambiente do Apache, que pode ser usado para
+            implementar as "<acronym>URL</acronym>'s amigáveis" como
+            "<filename>http://www.example.com/user/edit</filename>". Se mod_rewrite não estiver
+            habilitado, o Zend Framework poderá ser configurado para suportar 
+            <acronym>URL</acronym>'s como
+            "<command>http://www.example.com?controller=user&amp;action=edit</command>".
+            <acronym>URL</acronym>'s amigáveis podem ser usadas para encurtar
+            <acronym>URL</acronym>'s para uma representação textual ou para otimização de sites
+            (<acronym>SEO</acronym>), mas elas não afetam diretamente a funcionalidade da aplicação.
         </para>
 
-        <para>
-            Zend Framework têm uma coleção extensa de testes de automação,
-            que você pode executar usando PHPUnit 3.0 ou superior. Está versão
-            do PHPUnit também requere PHP 5.1.4 ou superior.
-        </para>
+        <sect2 id="requirements.version">
 
-        <para>
-            Apesar do Zend Framework funcionar corretamente com a versão do
-            PHP mencionada acima, você é fortemente recomendado a usar o PHP 5.2.2
-            ou posterior. Há melhorias importantes de segurança e performance
-            disponíveis nas versão mais nova do PHP.
-        </para>
+            <title>Versão do PHP</title>
 
-    </sect1>
+            <para>
+                Zend recomenda a versão mais atual do <acronym>PHP</acronym> em razão das
+                melhorias na segurança e no desempenho, e atualmente oferece suporte ao
+                <acronym>PHP</acronym> 5.2.4 ou posterior.
+            </para>
 
-    <sect1 id="requirements.extensions">
+            <para>
+                Zend Framework tem uma extensa coleção de testes unitários, que você pode
+                executar usando PHPUnit 3.3.0 ou posterior.
+            </para>
 
-        <title>Extensões PHP</title>
+        </sect2>
 
-        <para>
-            A baixo está uma tabela que lista todas as extensões típicas
-            encontradas no PHP, e como elas são usadas no Zend Framework.
-            Isto pode ajudar a guiá-lo para saber quais extensões são
-            requeridas para a sua aplicação. Nem todas as extensões usadas
-            pelo Zend Framework são necessárias para as aplicações.
-        </para>
+        <sect2 id="requirements.extensions">
+
+            <title>Extensões do PHP</title>
+
+            <para>
+                Você encontrará abaixo uma tabela listando todas as extensões normalmente
+                encontradas no <acronym>PHP</acronym> e como o Zend Framework as utiliza. Você
+                deve verificar se as extensões no qual os componentes do Zend Framework que você
+                está usando em sua aplicação estão disponíveis em seu ambiente
+                <acronym>PHP</acronym>. Muitas das aplicações não requerem todas as extensões
+                listadas abaixo.
+            </para>
+
+            <para>
+                Uma dependência do tipo "hard" indica que os componentes ou classes não poderão
+                funcionar corretamente se a respectiva extensão não estiver disponível, enquanto
+                uma dependência do tipo "soft" indica que o componente poderá usar a extensão, se
+                estiver disponível, mas irá funcionar corretamente se não estiver. Muitos
+                componentes utilizarão automaticamente determinadas extensões, se estas estiverem
+                disponíveis, para otimizar o desempenho, mas vão executar um código com
+                funcionalidade similar no próprio componente caso as extensões estejam
+                indisponíveis.
+            </para>
+
+            <xi:include href="requirements-php-extensions-table.xml" />
+        </sect2>
+
+        <sect2 id="requirements.zendcomponents">
+
+            <title>Componentes do Zend Framework</title>
+
+            <para>
+                Abaixo está uma tabela que lista todos os componentes do Zend Framework
+                disponíveis e qual a extensão <acronym>PHP</acronym> que necessitam. Isso pode
+                te ajudar a saber quais extensões são necessárias em sua aplicação. Nem todas as
+                extensões utilizadas pelo Zend Framework são necessárias em cada aplicação.
+            </para>
+
+            <para>
+                Uma dependência do tipo "hard" indica que os componentes ou classes não poderão
+                funcionar corretamente se a respectiva extensão não estiver disponível, enquanto
+                uma dependência do tipo "soft" indica que o componente poderá usar a extensão, se
+                estiver disponível, mas irá funcionar corretamente se não estiver. Muitos
+                componentes utilizarão automaticamente determinadas extensões, se estas estiverem
+                disponíveis, para otimizar o desempenho, mas vão executar um código com
+                funcionalidade similar no próprio componente caso as extensões estejam
+                indisponíveis.
+            </para>
+
+            <xi:include href="requirements-zendcomponents-table.xml" />
+        </sect2>
+
+        <sect2 id="requirements.dependencies">
+
+            <title>Dependências do Zend Framework</title>
+
+            <para>
+                Abaixo você encontrará uma tabela com os componentes do Zend Framework e suas
+                respectivas dependências com outros componentes do Zend Framework. Isto te
+                ajudará se precisar ter apenas componentes individuais em vez do
+                Zend Framework completo.
+            </para>
+
+            <para>
+                Uma dependência do tipo "hard" indica que os componentes ou classes não poderão
+                funcionar corretamente se o respectivo componente dependente não estiver
+                disponível, enquanto uma dependência do tipo "soft" indica que o componente pode
+                precisar do componente dependente em situações especiais ou com adaptadores
+                especiais. Enfim, uma dependência do tipo "fix" indica que estes componentes ou
+                classes, em todo caso, são utilizados por subcomponentes, e uma dependência do
+                tipo "sub" indica que estes componentes podem ser utilizados pelos subcomponentes
+                em situações especiais ou com adaptadores especiais.
+            </para>
+
+            <note>
+                <para>
+                    Mesmo se for possível separar os componentes individuais para o uso do Zend
+                    Framework completo, você deve ter em mente que isso pode levar a problemas
+                    quando os arquivos são perdidos ou os componentes são usados de dinamicamente.
+                </para>
+            </note>
 
-        <table frame='all' id="requirements.extensions.table-1">
-            <title>Extensões PHP usadas pelo Zend Framework</title>
-            <tgroup cols='3'>
-                <colspec colwidth='1in'/>
-                <colspec colwidth='1in'/>
-                <colspec colwidth='3in'/>
-                <thead>
-                    <row>
-                        <entry>Extensão</entry>
-                        <entry>Típo de Uso</entry>
-                        <entry>Usado por quais Componentes do Zend Framework</entry>
-                    </row>
-                </thead>
-                <tbody>
-                    <row>
-                        <entry>apc</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Cache_Backend_Apc</entry>
-                    </row>
-                    <row>
-                        <entry>bcmath</entry>
-                        <entry>Opcional</entry>
-                        <entry>Zend_Locale_Math</entry>
-                    </row>
-                    <row>
-                        <entry>bitset</entry>
-                        <entry>Opcional</entry>
-                        <entry>Zend_Search_Lucene</entry>
-                    </row>
-                    <row>
-                        <entry>bz2</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>calendar</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>com_dotnet</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>ctype</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Auth_Adapter_Http, Zend_Gdata_App, Zend_Http_Client, Zend_Pdf, Zend_Rest_Client, Zend_Rest_Server, Zend_Search_Lucene, Zend_Uri, Zend_Validate</entry>
-                    </row>
-                    <row>
-                        <entry>curl</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Http_Client_Adapter_Curl</entry>
-                    </row>
-                    <row>
-                        <entry>date</entry>
-                        <entry>?</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>dba</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>dbase</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>dom</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Feed, Zend_Gdata, Zend_Log_Formatter_Xml, Zend_Rest_Server, Zend_Search_Lucene, Zend_Service_Amazon, Zend_Service_Delicious, Zend_Service_Flickr, Zend_Service_Simpy, Zend_Service_Yahoo, Zend_XmlRpc</entry>
-                    </row>
-                    <row>
-                        <entry>exif</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>fbsql</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>fdf</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>filter</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>ftp</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>gd</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Pdf</entry>
-                    </row>
-                    <row>
-                        <entry>gettext</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>gmp</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>hash</entry>
-                        <entry>?</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>ibm_db2</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Db_Adapter_Db2</entry>
-                    </row>
-                    <row>
-                        <entry>iconv</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Locale_Format, Zend_Mime_Decode, Zend_Pdf, Zend_Search_Lucene, Zend_Service_Audioscrobbler, Zend_Service_Flickr, Zend_XmlRpc_Client</entry>
-                    </row>
-                    <row>
-                        <entry>imap</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>informix</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>interbase</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Db_Adapter_Firebird</entry>
-                    </row>
-                    <row>
-                        <entry>json</entry>
-                        <entry>Opcional</entry>
-                        <entry>Zend_Json</entry>
-                    </row>
-                    <row>
-                        <entry>ldap</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>libxml</entry>
-                        <entry>Dependência</entry>
-                        <entry>DOM, SimpleXML, XSLT</entry>
-                    </row>
-                    <row>
-                        <entry>mbstring</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Feed</entry>
-                    </row>
-                    <row>
-                        <entry>mcrypt</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>memcache</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Cache_Backend_Memcached</entry>
-                    </row>
-                    <row>
-                        <entry>mhash</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>mime_magic</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Http_Client</entry>
-                    </row>
-                    <row>
-                        <entry>ming</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>msql</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>mssql</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>mysql</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>mysqli</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Db_Adapter_Mysqli</entry>
-                    </row>
-                    <row>
-                        <entry>ncurses</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>oci8</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Db_Adapter_Oracle</entry>
-                    </row>
-                    <row>
-                        <entry>odbc</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>openssl</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>pcntl</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>pcre</entry>
-                        <entry>Dependência</entry>
-                        <entry>Virtualmente todos os componentes</entry>
-                    </row>
-                    <row>
-                        <entry>pdo</entry>
-                        <entry>Dependência</entry>
-                        <entry>Todos adptadores de bancos de dados PDO</entry>
-                    </row>
-                    <row>
-                        <entry>pdo_dblib</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>pdo_firebird</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>pdo_mssql</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Db_Adapter_Pdo_Mssql</entry>
-                    </row>
-                    <row>
-                        <entry>pdo_mysql</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Db_Adapter_Pdo_Mysql</entry>
-                    </row>
-                    <row>
-                        <entry>pdo_oci</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Db_Adapter_Pdo_Oci</entry>
-                    </row>
-                    <row>
-                        <entry>pdo_pgsql</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Db_Adapter_Pdo_Pgsql</entry>
-                    </row>
-                    <row>
-                        <entry>pdo_sqlite</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Db_Adapter_Pdo_Sqlite</entry>
-                    </row>
-                    <row>
-                        <entry>pgsql</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>posix</entry>
-                        <entry>Opcional</entry>
-                        <entry>Zend_Mail</entry>
-                    </row>
-                    <row>
-                        <entry>pspell</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>readline</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>recode</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>Reflection</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Controller, Zend_Filter, Zend_Filter_Input, Zend_Json, Zend_Log, Zend_Rest_Server, Zend_Server_Reflection, Zend_Validate, Zend_View, Zend_XmlRpc_Server</entry>
-                    </row>
-                    <row>
-                        <entry>session</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Controller_Action_Helper_Redirector, Zend_Session</entry>
-                    </row>
-                    <row>
-                        <entry>shmop</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>SimpleXML</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Config_Xml, Zend_Feed, Zend_Rest_Client, Zend_Service_Audioscrobbler, Zend_XmlRpc</entry>
-                    </row>
-                    <row>
-                        <entry>soap</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Service_StrikeIron</entry>
-                    </row>
-                    <row>
-                        <entry>sockets</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>SPL</entry>
-                        <entry>Dependência</entry>
-                        <entry>Virtually all components</entry>
-                    </row>
-                    <row>
-                        <entry>standard</entry>
-                        <entry>Dependência</entry>
-                        <entry>Virtually all components</entry>
-                    </row>
-                    <row>
-                        <entry>sybase</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>sysvmsg</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>sysvsem</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>sysvshm</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>tidy</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>tokenizer</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>wddx</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>xml</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Translate_Adapter_Qt, Zend_Translate_Adapter_Tmx, Zend_Translate_Adapter_Xliff</entry>
-                    </row>
-                    <row>
-                        <entry>XMLReader</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>xmlrpc</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>XMLWriter</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>xsl</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>zip</entry>
-                        <entry>--</entry>
-                        <entry></entry>
-                    </row>
-                    <row>
-                        <entry>zlib</entry>
-                        <entry>Dependência</entry>
-                        <entry>Zend_Pdf, Memcache</entry>
-                    </row>
-                </tbody>
-            </tgroup>
-        </table>
+            <xi:include href="requirements-dependencies-table.xml" />
+        </sect2>
 
     </sect1>