Zend_Layout-Options.xml 8.9 KB

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