Zend_Layout-Options.xml 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.layout.options">
  5. <title>Zend_Layout options de configuration</title>
  6. <para>
  7. <classname>Zend_Layout</classname> possède quelques options. Vous pouvez les spécifier
  8. grâce à des accesseurs. Autrement, en passant un tableau ou un objet
  9. <classname>Zend_Config</classname> au constructeur, ou à <methodname>startMvc()</methodname>. Un tableau
  10. d'options peut aussi être passé à <methodname>setOptions()</methodname>, un objet
  11. <classname>Zend_Config</classname> peut être passé à <methodname>setConfig()</methodname>. Les options
  12. de configuration sont les suivantes :
  13. </para>
  14. <itemizedlist>
  15. <listitem>
  16. <para>
  17. <emphasis>layout</emphasis> : le nom du script de layout. L'inflecteur traduit
  18. alors ceci en nom de fichier. Par défaut, il s'agit de "layout" traduit vers
  19. "layout.phtml". Les accesseurs sont <methodname>setLayout()</methodname> et
  20. <methodname>getLayout()</methodname>.
  21. </para>
  22. </listitem>
  23. <listitem>
  24. <para>
  25. <emphasis>layoutPath</emphasis> : l'url de base vers les scripts de layout.
  26. Les accesseurs sont <methodname>setLayoutPath()</methodname> et
  27. <methodname>getLayoutPath()</methodname>.
  28. </para>
  29. </listitem>
  30. <listitem>
  31. <para>
  32. <emphasis>contentKey</emphasis> : la variable de layout utilisée pour accéder
  33. au contenu par défaut (lorsqu'utilisée couplée avec <acronym>MVC</acronym>). La valeur par défaut est
  34. "content". Pour les accesseurs : <methodname>setContentKey()</methodname> et
  35. <methodname>getContentKey()</methodname>.
  36. </para>
  37. </listitem>
  38. <listitem>
  39. <para>
  40. <emphasis>mvcSuccessfulActionOnly</emphasis> : si une action envoie une
  41. exception et que cette option vaut <constant>TRUE</constant>, alors le layout ne sera pas
  42. rendu. (Ceci évite un double rendu alors que le plugin <link
  43. linkend="zend.controller.plugins.standard.errorhandler">ErrorHandler</link> est
  44. activé). Par défaut cette option est à <constant>TRUE</constant>. Ses accesseurs :
  45. <methodname>setMvcSuccessfulActionOnly()</methodname> et
  46. <methodname>getMvcSuccessfulActionOnly()</methodname>.
  47. </para>
  48. </listitem>
  49. <listitem>
  50. <para>
  51. <emphasis>view</emphasis> : l'objet de vue (<classname>Zend_View</classname>)
  52. utilisée par le layout pour rendre son script. Utilisé avec <acronym>MVC</acronym>,
  53. <classname>Zend_Layout</classname> cherchera à récupérer la vue via l'aide <link
  54. linkend="zend.controller.actionhelpers.viewrenderer">ViewRenderer</link>, si aucun
  55. objet de vue ne lui est passé explicitement. Les accesseurs sont
  56. <methodname>setView()</methodname> et <methodname>getView()</methodname>.
  57. </para>
  58. </listitem>
  59. <listitem>
  60. <para>
  61. <emphasis>helperClass</emphasis> : la classe représentant l'aide d'action
  62. lorsque <classname>Zend_Layout</classname> est utilisé avec les composants <acronym>MVC</acronym>. Par
  63. défaut il s'agit de
  64. <classname>Zend_Layout_Controller_Action_Helper_Layout</classname>. Les accesseurs
  65. sont <methodname>setHelperClass()</methodname> et <methodname>getHelperClass()</methodname>.
  66. </para>
  67. </listitem>
  68. <listitem>
  69. <para>
  70. <emphasis>pluginClass</emphasis> : la classe représentant le plugin de
  71. contrôleur frontal lorsque <classname>Zend_Layout</classname> est utilisé avec les
  72. composants <acronym>MVC</acronym>. Par défaut, il s'agit de
  73. <classname>Zend_Layout_Controller_Plugin_Layout</classname>. Les accesseurs sont
  74. <methodname>setPluginClass()</methodname> et <methodname>getPluginClass()</methodname>.
  75. </para>
  76. </listitem>
  77. <listitem>
  78. <para>
  79. <emphasis>inflector</emphasis> : l'inflecteur utilisé pour la résolution des
  80. noms de layout vers les scripts de layout. Voyez <link
  81. linkend="zend.layout.advanced.inflector">la documentation spécifique pour plus de
  82. détails</link>. Les accesseurs sont <methodname>setInflector()</methodname> et
  83. <methodname>getInflector()</methodname>.
  84. </para>
  85. </listitem>
  86. </itemizedlist>
  87. <note>
  88. <title>Vous devez passer les helperClass et pluginClass à startMvc()</title>
  89. <para>
  90. Pour que les paramètres <code>helperClass</code> et <code>pluginClass</code>
  91. agissent, vous devez les passer en options à <methodname>startMvc()</methodname>. Si vous les
  92. spécifiez après, ils seront ignorés.
  93. </para>
  94. </note>
  95. <sect2 id="zend.layout.options.examples">
  96. <title>Exemples</title>
  97. <para>
  98. Les exemples sont basés sur les paramètres <varname>$options</varname> et
  99. <varname>$config</varname> suivants :
  100. </para>
  101. <programlisting language="php"><![CDATA[
  102. $options = array(
  103. 'layout' => 'foo',
  104. 'layoutPath' => '/chemin/vers/layouts',
  105. 'contentKey' => 'CONTENT'
  106. // ignorés si MVC n'est pas utilisé
  107. );
  108. ]]></programlisting>
  109. <programlisting language="php"><![CDATA[
  110. /**
  111. [layout]
  112. layout = "foo"
  113. layoutPath = "/chemin/vers/layouts"
  114. contentKey = "CONTENT"
  115. */
  116. $config = new Zend_Config_Ini('/chemin/vers/layout.ini', 'layout');
  117. ]]></programlisting>
  118. <example id="zend.layout.options.examples.constructor">
  119. <title>Passer des options au constructeur ou à startMvc()</title>
  120. <para>
  121. Le constructeur et la méthode statique <methodname>startMvc()</methodname> acceptent soit
  122. un tableau d'options, soit un objet <classname>Zend_Config</classname>.
  123. </para>
  124. <para>Voyons le cas du tableau :</para>
  125. <programlisting language="php"><![CDATA[
  126. // Avec le constructeur :
  127. $layout = new Zend_Layout($options);
  128. // Avec startMvc():
  129. $layout = Zend_Layout::startMvc($options);
  130. ]]></programlisting>
  131. <para>Et maintenant avec l'objet de configuration :</para>
  132. <programlisting language="php"><![CDATA[
  133. $config = new Zend_Config_Ini('/chemin/vers/layout.ini', 'layout');
  134. // Cas du constructeur:
  135. $layout = new Zend_Layout($config);
  136. // Via startMvc():
  137. $layout = Zend_Layout::startMvc($config);
  138. ]]></programlisting>
  139. <para>
  140. C'est la manière la plus simple de configurer votre objet
  141. <classname>Zend_Layout</classname>.
  142. </para>
  143. </example>
  144. <example id="zend.layout.options.examples.setoptionsconfig">
  145. <title>Utilisation de setOptions() et setConfig()</title>
  146. <para>
  147. Pour configurer <classname>Zend_Layout</classname> après l'avoir instanciée,
  148. utilisez les méthodes <methodname>setOptions()</methodname> et <methodname>setConfig()</methodname> sur
  149. l'objet :
  150. </para>
  151. <programlisting language="php"><![CDATA[
  152. // Utilisation d'un tableau d'options:
  153. $layout->setOptions($options);
  154. // Utilisation d'un objet Zend_Config:
  155. $layout->setConfig($options);
  156. ]]></programlisting>
  157. <para>
  158. Notez cependant que certaines options comme <code>pluginClass</code> et
  159. <code>helperClass</code> n'auront aucun effet avec ses méthodes. Elles doivent être
  160. passées au constructeur ou à la méthode <methodname>startMvc()</methodname>.
  161. </para>
  162. </example>
  163. <example id="zend.layout.options.examples.accessors">
  164. <title>Utilisation des accesseurs</title>
  165. <para>
  166. Enfin, vous pouvez aussi configurer votre objet de
  167. <classname>Zend_Layout</classname> grâce à ses accesseurs. Ils peuvent s'utiliser
  168. chaînés (interface fluide):
  169. </para>
  170. <programlisting language="php"><![CDATA[
  171. $layout->setLayout('foo')
  172. ->setLayoutPath('/chemin/vers/layouts')
  173. ->setContentKey('CONTENT');
  174. ]]></programlisting>
  175. </example>
  176. </sect2>
  177. </sect1>