<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 16650 -->
<!-- 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>
            <property>controllerDirectory</property>&#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>
            <property>moduleControllerDirectoryName</property>&#160;: une chaîne de caractères
            indiquant un sous-dossier dans ce module qui contient les contrôleurs.
        </para></listitem>

        <listitem><para>
            <property>moduleDirectory</property>&#160;: un dossier dans lequel tous les modules
            peuvent être trouvés.
        </para></listitem>

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

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

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

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

        <listitem><para>
            <property>plugins</property>&#160;: tableau de nom de classe de plugins de contrôleurs.
            La ressource instanciera chaque classe (sans arguments de contructeur) et les
            enregistrera dans le contrôleur frontal.
        </para></listitem>

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