1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- EN-Revision: 20885 -->
4 <sect2 id="zend.application.available-resources.frontcontroller">
5 <title>Zend_Application_Resource_Frontcontroller</title>
8 Probablement la ressource que vous allez le plus communément charger avec
9 <classname>Zend_Application</classname> sera la ressource de contrôleur frontal qui fournit
10 la possibilité de configurer <classname>Zend_Controller_Front</classname>. Cette ressource
11 permet de spécifier n'importe quel paramètre du contrôleur frontal, de spécifier les plugins
12 à initialiser, et bien plus...
16 Une fois initialisée, la ressource assigne la propriété <varname>$frontController</varname>
17 du fichier d'initialisation à l'instance <classname>Zend_Controller_Front</classname>.
21 Les clés de configuration disponibles incluent les suivantes et sont sensibles à la
27 <emphasis><property>controllerDirectory</property></emphasis> : une chaîne de
28 caractères spécifiant un seul dossier de contrôleurs, ou un tableau associant un
29 nom de module et un dossier de contrôleurs.
33 <emphasis><property>moduleControllerDirectoryName</property></emphasis> : une
34 chaîne de caractères indiquant un sous-dossier dans ce module qui contient les
39 <emphasis><property>moduleDirectory</property></emphasis> : un dossier dans
40 lequel tous les modules peuvent être trouvés.
44 <emphasis><property>defaultControllerName</property></emphasis> : nom du
45 contrôleur par défaut (normalement "index").
49 <emphasis><property>defaultAction</property></emphasis> : nom de l'action par
50 défaut (normalement "index").
54 <emphasis><property>defaultModule</property></emphasis> : nom du module par
55 défaut (normalement "default").
59 <emphasis><property>baseUrl</property></emphasis> : <acronym>URL</acronym>
60 de base explicite vers l'application (normalement auto-détecté).
64 <emphasis><property>plugins</property></emphasis> : tableau de nom de classe
65 de plugins de contrôleurs. La ressource instanciera chaque classe (sans arguments
66 de contructeur) et les enregistrera dans le contrôleur frontal. Si vous souhaitez
67 enregistrer un plugin avec un index particulier dans la pile des plugins, vous
68 devez fournir un tableau avec deux clés <property>class</property> et
69 <property>stackIndex</property>.
73 <emphasis><property>params</property></emphasis> : tableau de paires
74 clés / valeurs à enregistrer dans le contrôleur frontal.
79 <emphasis><property>returnresponse</property></emphasis> : active ou non le
80 retour de l'objet de réponse après la distribution du contrôleur frontal. Cette
81 valeur devrait être booléenne ; par défaut, ceci est désactivé.
87 Si une clé non-connue est fournie, elle sera enregistrée comme paramètre du contrôleur
88 frontal en la fournissant à <methodname>setParam()</methodname>.
91 <example id="zend.application.available-resources.frontcontroller.configExample">
92 <title>Exemple de configuration d'une ressource de contrôleur frontal</title>
95 Voici un extrait de configuration <acronym>INI</acronym> montrant comment configurer
96 la ressource de contrôleur frontal.
99 <programlisting language="ini"><![CDATA[
101 resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
102 resources.frontController.moduleControllerDirectoryName = "actions"
103 resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
104 resources.frontController.defaultControllerName = "site"
105 resources.frontController.defaultAction = "home"
106 resources.frontController.defaultModule = "static"
107 resources.frontController.baseUrl = "/subdir"
108 resources.frontController.plugins.foo = "My_Plugin_Foo"
109 resources.frontController.plugins.bar = "My_Plugin_Bar"
110 resources.frontController.plugins.baz.class = "My_Plugin_Baz"
111 resources.frontController.plugins.baz.stackIndex = 123
112 resources.frontController.returnresponse = 1
113 resources.frontController.env = APPLICATION_ENV
117 <example id="zend.application.available-resources.frontcontroller.propertyExample">
118 <title>Récupération de votre contrôleur frontal à partir de votre initialiseur</title>
121 Une fois la ressource de contrôleur frontal initialisée, vous pouvez récupérer
122 l'instance via la propriété <varname>$frontController</varname> de votre initialiseur.
125 <programlisting language="php"><![CDATA[
126 $bootstrap->bootstrap('frontController');
127 $front = $bootstrap->frontController;