Zend_Layout-Options.xml 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 20115 -->
  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. é <constant>TRUE</constant>, 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 é <constant>TRUE</constant>. 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
  64. <methodname>getPluginClass()</methodname>.
  65. </para></listitem>
  66. <listitem><para>
  67. <emphasis>inflector</emphasis>: o inflector a ser usado quando resolver
  68. nomes para caminhos de view scripts de layout; veja
  69. <link linkend="zend.layout.advanced.inflector">a documentação
  70. <classname>Zend_Layout</classname> inflector para mais detalhes</link>. Os
  71. acessores são <methodname>setInflector()</methodname> e
  72. <methodname>getInflector()</methodname>.
  73. </para></listitem>
  74. </itemizedlist>
  75. <note>
  76. <title>helperClass e pluginClass devem ser passados para startMvc()</title>
  77. <para>
  78. Para que as configurações <code>helperClass</code> e <code>pluginClass</code>
  79. tenham efeito, elas devem ser passadas como opções para
  80. <methodname>startMvc()</methodname>; se forem configuradas mais tarde,
  81. elas não tem efeito.
  82. </para>
  83. </note>
  84. <sect2 id="zend.layout.options.examples">
  85. <title>Exemplos</title>
  86. <para>
  87. Os seguintes exemplos assumem a seguinte matriz <varname>$options</varname>
  88. e objeto <varname>$config</varname>:
  89. </para>
  90. <programlisting language="php"><![CDATA[
  91. $options = array(
  92. 'layout' => 'foo',
  93. 'layoutPath' => '/path/to/layouts',
  94. 'contentKey' => 'CONTENT', // ignorado quando o MVC não é usado
  95. );
  96. ]]></programlisting>
  97. <programlisting language="php"><![CDATA[
  98. /**
  99. [layout]
  100. layout = "foo"
  101. layoutPath = "/path/to/layouts"
  102. contentKey = "CONTENT"
  103. */
  104. $config = new Zend_Config_Ini('/path/to/layout.ini', 'layout');
  105. ]]></programlisting>
  106. <example id="zend.layout.options.examples.constructor">
  107. <title>Passando opções para o construtor ou startMvc()</title>
  108. <para>
  109. Tanto o construtor quanto o método estático <methodname>startMvc()</methodname>
  110. podem aceitar tanto uma matriz de opções quanto um objeto
  111. <classname>Zend_Config</classname> com opções de modo a configurar
  112. a instância de <classname>Zend_Layout</classname>.
  113. </para>
  114. <para>
  115. Primeiro, dê uma olhada na passagem de uma matriz:
  116. </para>
  117. <programlisting language="php"><![CDATA[
  118. // Usando um construtor:
  119. $layout = new Zend_Layout($options);
  120. // Usando startMvc():
  121. $layout = Zend_Layout::startMvc($options);
  122. ]]></programlisting>
  123. <para>
  124. E agora usando um objeto config:
  125. </para>
  126. <programlisting language="php"><![CDATA[
  127. $config = new Zend_Config_Ini('/path/to/layout.ini', 'layout');
  128. // Usando construtor:
  129. $layout = new Zend_Layout($config);
  130. // Usando startMvc():
  131. $layout = Zend_Layout::startMvc($config);
  132. ]]></programlisting>
  133. <para>
  134. Basicamente, esse é o modo mais fácil de customizar sua instância
  135. <classname>Zend_Layout</classname>.
  136. </para>
  137. </example>
  138. <example id="zend.layout.options.examples.setoptionsconfig">
  139. <title>Usando setOption() e setConfig()</title>
  140. <para>
  141. Algumas vezes você precisa configurar o objeto <classname>Zend_Layout</classname>
  142. depois que ele já foi instanciado; <methodname>setOptions()</methodname> e
  143. <methodname>setConfig()</methodname> dão a você um modo fácil
  144. e rápido de fazer isso:
  145. </para>
  146. <programlisting language="php"><![CDATA[
  147. // Usando uma matriz de opções:
  148. $layout->setOptions($options);
  149. // Usando um objeto Zend_Config:
  150. $layout->setConfig($options);
  151. ]]></programlisting>
  152. <para>
  153. Note, entretanto, que certas opções, tais como <code>pluginClass</code> e
  154. <code>helperClass</code>, não serão afetadas quando a passagem for feita
  155. por esse método; elas precisam ser passadas ao construtor ou método
  156. <methodname>startMvc()</methodname>.
  157. </para>
  158. </example>
  159. <example id="zend.layout.options.examples.accessors">
  160. <title>Usando Acessores</title>
  161. <para>
  162. Finalmente, você pode também configurar sua instância
  163. <classname>Zend_Layout</classname> via acessores. Todos os acessores
  164. implementam uma interface fluente, significando que suas chamadas
  165. podem ser encadeadas:
  166. </para>
  167. <programlisting language="php"><![CDATA[
  168. $layout->setLayout('foo')
  169. ->setLayoutPath('/path/to/layouts')
  170. ->setContentKey('CONTENT');
  171. ]]></programlisting>
  172. </example>
  173. </sect2>
  174. </sect1>
  175. <!--
  176. vim:se ts=4 sw=4 et:
  177. -->