| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- <?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:
- -->
|