Zend_Layout-Options.xml 7.3 KB

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