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