| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24997 -->
- <!-- Reviewed: no -->
- <sect2 id="zend.application.available-resources.frontcontroller">
- <title>Zend_Application_Resource_Frontcontroller</title>
- <para>
- Probablement la ressource que vous allez le plus communément charger avec
- <classname>Zend_Application</classname> sera la ressource de contrôleur frontal qui fournit
- la possibilité de configurer <classname>Zend_Controller_Front</classname>. Cette ressource
- permet de spécifier n'importe quel paramètre du contrôleur frontal, de spécifier les plugins
- à initialiser, et bien plus...
- </para>
- <para>
- Une fois initialisée, la ressource assigne la propriété <varname>$frontController</varname>
- du fichier d'initialisation à l'instance <classname>Zend_Controller_Front</classname>.
- </para>
- <para>
- Les clés de configuration disponibles incluent les suivantes et sont sensibles à la
- casse :
- </para>
- <itemizedlist>
- <listitem><para>
- <emphasis><property>controllerDirectory</property></emphasis> : une chaîne de
- caractères spécifiant un seul dossier de contrôleurs, ou un tableau associant un
- nom de module et un dossier de contrôleurs.
- </para></listitem>
- <listitem><para>
- <emphasis><property>moduleControllerDirectoryName</property></emphasis> : une
- chaîne de caractères indiquant un sous-dossier dans ce module qui contient les
- contrôleurs.
- </para></listitem>
- <listitem><para>
- <emphasis><property>moduleDirectory</property></emphasis> : un dossier dans
- lequel tous les modules peuvent être trouvés.
- </para></listitem>
- <listitem><para>
- <emphasis><property>defaultControllerName</property></emphasis> : nom du
- contrôleur par défaut (normalement "index").
- </para></listitem>
- <listitem><para>
- <emphasis><property>defaultAction</property></emphasis> : nom de l'action par
- défaut (normalement "index").
- </para></listitem>
- <listitem><para>
- <emphasis><property>defaultModule</property></emphasis> : nom du module par
- défaut (normalement "default").
- </para></listitem>
- <listitem><para>
- <emphasis><property>baseUrl</property></emphasis> : <acronym>URL</acronym>
- de base explicite vers l'application (normalement auto-détecté).
- </para></listitem>
- <listitem><para>
- <emphasis><property>plugins</property></emphasis> : tableau de nom de classe
- de plugins de contrôleurs. La ressource instanciera chaque classe (sans arguments
- de constructeur) et les enregistrera dans le contrôleur frontal. Si vous souhaitez
- enregistrer un plugin avec un index particulier dans la pile des plugins, vous
- devez fournir un tableau avec deux clés <property>class</property> et
- <property>stackIndex</property>.
- </para></listitem>
- <listitem><para>
- <emphasis><property>params</property></emphasis> : tableau de paires
- clés / valeurs à enregistrer dans le contrôleur frontal.
- </para></listitem>
- <listitem>
- <para>
- <emphasis><property>returnresponse</property></emphasis> : active ou non le
- retour de l'objet de réponse après la distribution du contrôleur frontal. Cette
- valeur devrait être booléenne ; par défaut, ceci est désactivé.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>dispatcher</property></emphasis>> : permet de surcharger
- le distributeur par défaut. Possède 2 sous-clés, <property>class</property> (le
- nom de classe du nouveau distributeur) et <property>params</property>, un tableau
- de paramètres à fournir au constructeur du distributeur.
- </para>
-
- <example id="zend.application.available-resources.frontcontroller.configExample.1">
- <title>Surcharger le distributeur</title>
- <programlisting language="ini"><![CDATA[
- [production]
- resources.frontController.dispatcher.class = "My_Custom_Dispatcher"
- resources.frontController.dispatcher.params.foo = "bar"
- resources.frontController.dispatcher.params.baz = "grok"
- ]]></programlisting>
- </example>
- </listitem>
- </itemizedlist>
- <para>
- Si une clé non-connue est fournie, elle sera enregistrée comme paramètre du contrôleur
- frontal en la fournissant à <methodname>setParam()</methodname>.
- </para>
- <example id="zend.application.available-resources.frontcontroller.configExample.2">
- <title>Exemple de configuration d'une ressource de contrôleur frontal</title>
- <para>
- Voici un extrait de configuration <acronym>INI</acronym> montrant comment configurer
- la ressource de contrôleur frontal.
- </para>
- <programlisting language="ini"><![CDATA[
- [production]
- resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
- resources.frontController.moduleControllerDirectoryName = "actions"
- resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
- resources.frontController.defaultControllerName = "site"
- resources.frontController.defaultAction = "home"
- resources.frontController.defaultModule = "static"
- resources.frontController.baseUrl = "/subdir"
- resources.frontController.plugins.foo = "My_Plugin_Foo"
- resources.frontController.plugins.bar = "My_Plugin_Bar"
- resources.frontController.plugins.baz.class = "My_Plugin_Baz"
- resources.frontController.plugins.baz.stackIndex = 123
- resources.frontController.returnresponse = 1
- resources.frontController.env = APPLICATION_ENV
- ;Ce qui suit proxie vers :
- ;Zend_Controller_Action_HelperBroker::addPath('Helper_Path', $helperPrefix);
- resources.frontController.actionHelperPaths.HELPER_Prefix = "My/Helper/Path"
- ]]></programlisting>
- </example>
- <example id="zend.application.available-resources.frontcontroller.propertyExample">
- <title>Récupération de votre contrôleur frontal à partir de votre initialiseur</title>
- <para>
- Une fois la ressource de contrôleur frontal initialisée, vous pouvez récupérer
- l'instance via la propriété <varname>$frontController</varname> de votre initialiseur.
- </para>
- <programlisting language="php"><![CDATA[
- $bootstrap->bootstrap('frontController');
- $front = $bootstrap->frontController;
- ]]></programlisting>
- </example>
- </sect2>
|