Zend_Layout-Options.xml 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 17175 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.layout.options">
  5. <title>Opções de Configuração Zend_Layout</title>
  6. <para>
  7. <classname>Zend_Layout</classname> tem uma variedade de opções de configuração. Essas
  8. podem ser configuradas chamando os acessores apropriados, passando uma matriz ou objeto
  9. <classname>Zend_Config</classname> para o construtor ou
  10. <methodname>startMvc()</methodname>, passando uma matriz de opções para
  11. <methodname>setOptions()</methodname>, ou passando um objeto
  12. <classname>Zend_Config</classname> para <methodname>setConfig()</methodname>.
  13. </para>
  14. <itemizedlist>
  15. <listitem><para>
  16. <emphasis>layout</emphasis>: o layout a ser usado. Utiliza o inflector atual para
  17. resolver o nome fornecido para o view script de layout apropriado. Por padrão,
  18. esse valor é 'layout' e resolve para 'layout.phtml'. Os acessores são
  19. <methodname>setLayout()</methodname> e <methodname>getLayout()</methodname>.
  20. </para></listitem>
  21. <listitem><para>
  22. <emphasis>layoutPath</emphasis>: o caminho base para os view scripts
  23. de layout. Os acessores são <methodname>setLayoutPath()</methodname> e
  24. <methodname>getLayoutPath()</methodname>.
  25. </para></listitem>
  26. <listitem><para>
  27. <emphasis>contentKey</emphasis>: a variável de layout usada para o conteúdo
  28. padrão (quando usado com o <acronym>MVC</acronym>). O valor padrão é 'content'.
  29. Os acessores são <methodname>setContentKey()</methodname> e
  30. <methodname>getContentKey()</methodname>.
  31. </para></listitem>
  32. <listitem><para>
  33. <emphasis>mvcSuccessfulActionOnly</emphasis>: quando usar o
  34. <acronym>MVC</acronym>, se uma ação lança uma exceção e esse marco
  35. é verdadeiro, o layout não será renderizado (isso é para
  36. prevenir dupla renderização do layout quando o <link
  37. linkend="zend.controller.plugins.standard.errorhandler">ErrorHandler plugin</link>
  38. estiver em uso). Por padrão, o marco é verdadeiro. Os acessores são
  39. <methodname>setMvcSuccessfulActionOnly()</methodname> e
  40. <methodname>getMvcSuccessfulActionOnly()</methodname>.
  41. </para></listitem>
  42. <listitem><para>
  43. <emphasis>view</emphasis>: O objeto view para ser usado na renderização.
  44. Quando usado com o <acronym>MVC</acronym>, <classname>Zend_Layout</classname>
  45. tentará usar o objeto view registrado com o
  46. <link linkend="zend.controller.actionhelpers.viewrenderer">ViewRenderer</link>
  47. se nenhum objeto view tiver sido passado explicitamente. Os acessores são
  48. <methodname>setView()</methodname> e <methodname>getView()</methodname>.
  49. </para></listitem>
  50. <listitem><para>
  51. <emphasis>helperClass</emphasis>: a classe action helper para usar quando
  52. <classname>Zend_Layout</classname> estiver utilizando os componentes
  53. <acronym>MVC</acronym>. Por padrão, ela é
  54. <classname>Zend_Layout_Controller_Action_Helper_Layout</classname>.
  55. Os acessores são <methodname>setHelperClass()</methodname> e
  56. <methodname>getHelperClass()</methodname>.
  57. </para></listitem>
  58. <listitem><para>
  59. <emphasis>pluginClass</emphasis>: a classe front controller plugin para usar
  60. quando <classname>Zend_Layout</classname> estiver utilizando os componentes
  61. <acronym>MVC</acronym>. Por padrão, ela é
  62. <classname>Zend_Layout_Controller_Plugin_Layout</classname>. Os acessores são
  63. <methodname>setPluginClass()</methodname> e <methodname>getPluginClass()</methodname>.
  64. </para></listitem>
  65. <listitem><para>
  66. <emphasis>inflector</emphasis>: o inflector a ser usado quando resolver
  67. nomes para caminhos de view scripts de layout; veja
  68. <link linkend="zend.layout.advanced.inflector">a documentação
  69. <classname>Zend_Layout</classname> inflector para mais detalhes</link>. Os
  70. acessores são <methodname>setInflector()</methodname> e
  71. <methodname>getInflector()</methodname>.
  72. </para></listitem>
  73. </itemizedlist>
  74. <note>
  75. <title>helperClass e pluginClass devem ser passados para startMvc()</title>
  76. <para>
  77. Para que as configurações <code>helperClass</code> e <code>pluginClass</code>
  78. tenham efeito, elas devem ser passadas como opções para
  79. <methodname>startMvc()</methodname>; se forem configuradas mais tarde,
  80. elas não tem efeito.
  81. </para>
  82. </note>
  83. <sect2 id="zend.layout.options.examples">
  84. <title>Exemplos</title>
  85. <para>
  86. Os seguintes exemplos assumem a seguinte matriz <varname>$options</varname>
  87. e objeto <varname>$config</varname>:
  88. </para>
  89. <programlisting language="php"><![CDATA[
  90. $options = array(
  91. 'layout' => 'foo',
  92. 'layoutPath' => '/path/to/layouts',
  93. 'contentKey' => 'CONTENT', // ignorado quando o MVC não é usado
  94. );
  95. ]]></programlisting>
  96. <programlisting language="php"><![CDATA[
  97. /**
  98. [layout]
  99. layout = "foo"
  100. layoutPath = "/path/to/layouts"
  101. contentKey = "CONTENT"
  102. */
  103. $config = new Zend_Config_Ini('/path/to/layout.ini', 'layout');
  104. ]]></programlisting>
  105. <example id="zend.layout.options.examples.constructor">
  106. <title>Passando opções para o construtor ou startMvc()</title>
  107. <para>
  108. Tanto o construtor quanto o método estático <methodname>startMvc()</methodname>
  109. podem aceitar tanto uma matriz de opções quanto um objeto
  110. <classname>Zend_Config</classname> com opções de modo a configurar
  111. a instância de <classname>Zend_Layout</classname>.
  112. </para>
  113. <para>
  114. Primeiro, dê uma olhada na passagem de uma matriz:
  115. </para>
  116. <programlisting language="php"><![CDATA[
  117. // Usando um construtor:
  118. $layout = new Zend_Layout($options);
  119. // Usando startMvc():
  120. $layout = Zend_Layout::startMvc($options);
  121. ]]></programlisting>
  122. <para>
  123. E agora usando um objeto config:
  124. </para>
  125. <programlisting language="php"><![CDATA[
  126. $config = new Zend_Config_Ini('/path/to/layout.ini', 'layout');
  127. // Usando construtor:
  128. $layout = new Zend_Layout($config);
  129. // Usando startMvc():
  130. $layout = Zend_Layout::startMvc($config);
  131. ]]></programlisting>
  132. <para>
  133. Basicamente, esse é o modo mais fácil de customizar sua instância
  134. <classname>Zend_Layout</classname>.
  135. </para>
  136. </example>
  137. <example id="zend.layout.options.examples.setoptionsconfig">
  138. <title>Usando setOption() e setConfig()</title>
  139. <para>
  140. Algumas vezes você precisa configurar o objeto <classname>Zend_Layout</classname>
  141. depois que ele já foi instanciado; <methodname>setOptions()</methodname> e
  142. <methodname>setConfig()</methodname> dão a você um modo fácil
  143. e rápido de fazer isso:
  144. </para>
  145. <programlisting language="php"><![CDATA[
  146. // Usando uma matriz de opções:
  147. $layout->setOptions($options);
  148. // Usando um objeto Zend_Config:
  149. $layout->setConfig($options);
  150. ]]></programlisting>
  151. <para>
  152. Note, entretanto, que certas opções, tais como <code>pluginClass</code> e
  153. <code>helperClass</code>, não serão afetadas quando a passagem for feita
  154. por esse método; elas precisam ser passadas ao construtor ou método
  155. <methodname>startMvc()</methodname>.
  156. </para>
  157. </example>
  158. <example id="zend.layout.options.examples.accessors">
  159. <title>Usando Acessores</title>
  160. <para>
  161. Finalmente, você pode também configurar sua instância
  162. <classname>Zend_Layout</classname> via acessores. Todos os acessores
  163. implementam uma interface fluente, significando que suas chamadas
  164. podem ser encadeadas:
  165. </para>
  166. <programlisting language="php"><![CDATA[
  167. $layout->setLayout('foo')
  168. ->setLayoutPath('/path/to/layouts')
  169. ->setContentKey('CONTENT');
  170. ]]></programlisting>
  171. </example>
  172. </sect2>
  173. </sect1>
  174. <!--
  175. vim:se ts=4 sw=4 et:
  176. -->