1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222
|
<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- 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
é <constant>TRUE</constant>, 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 é <constant>TRUE</constant>. 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 <property>helperClass</property> e
<property>pluginClass</property> 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 <property>pluginClass</property> e
<property>helperClass</property>, 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:
-->
|