File: Zend_Application-AvailableResources-Frontcontroller.xml

package info (click to toggle)
zendframework 1.12.9%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 133,584 kB
  • sloc: xml: 1,311,829; php: 570,173; sh: 170; makefile: 125; sql: 121
file content (154 lines) | stat: -rw-r--r-- 6,876 bytes parent folder | download | duplicates (2)
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
<?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&#160;:
    </para>

    <itemizedlist>
        <listitem><para>
            <emphasis><property>controllerDirectory</property></emphasis>&#160;: 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>&#160;: 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>&#160;: un dossier dans
            lequel tous les modules peuvent être trouvés.
        </para></listitem>

        <listitem><para>
            <emphasis><property>defaultControllerName</property></emphasis>&#160;: nom du
            contrôleur par défaut (normalement "index").
        </para></listitem>

        <listitem><para>
            <emphasis><property>defaultAction</property></emphasis>&#160;: nom de l'action par
            défaut (normalement "index").
        </para></listitem>

        <listitem><para>
            <emphasis><property>defaultModule</property></emphasis>&#160;: nom du module par
            défaut (normalement "default").
        </para></listitem>

        <listitem><para>
            <emphasis><property>baseUrl</property></emphasis>&#160;: <acronym>URL</acronym>
            de base explicite vers l'application (normalement auto-détecté).
        </para></listitem>

        <listitem><para>
            <emphasis><property>plugins</property></emphasis>&#160;: 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>&#160;: tableau de paires
            clés&#160;/&#160;valeurs à enregistrer dans le contrôleur frontal.
        </para></listitem>

        <listitem>
            <para>
                <emphasis><property>returnresponse</property></emphasis>&#160;: 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&#160;; par défaut, ceci est désactivé.
            </para>
        </listitem>

        <listitem>
            <para>
                <emphasis><property>dispatcher</property></emphasis>>&#160;: 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>