# Zend_Application_Resource_Frontcontroller

Probablement la ressource que vous allez le plus communément charger avec `Zend_Application` sera la ressource de contrôleur frontal qui fournit la possibilité de configurer `Zend_Controller_Front`. Cette ressource permet de spécifier n'importe quel paramètre du contrôleur frontal, de spécifier les plugins à initialiser, et bien plus...

Une fois initialisée, la ressource assigne la propriété `$frontController` du fichier d'initialisation à l'instance `Zend_Controller_Front`.

Les clés de configuration disponibles incluent les suivantes et sont sensibles à la casse :

- controllerDirectory : 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.

- moduleControllerDirectoryName : une chaîne de caractères indiquant un sous-dossier dans ce module qui contient les contrôleurs.

- moduleDirectory : un dossier dans lequel tous les modules peuvent être trouvés.

- defaultControllerName : nom du contrôleur par défaut (normalement "index").

- defaultAction : nom de l'action par défaut (normalement "index").

- defaultModule : nom du module par défaut (normalement "default").

- baseUrl : URL de base explicite vers l'application (normalement auto-détecté).

- plugins : 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. Si vous souhaitez enregistrer un plugin avec un index particulier dans la pile des plugins, vous devez fournir un tableau avec deux clés class et stackIndex.

- params : tableau de paires clés / valeurs à enregistrer dans le contrôleur frontal.

Si une clé non-connue est fournie, elle sera enregistrée comme paramètre du contrôleur frontal en la fournissant à `setParam()`.

## Exemple de configuration d'une ressource de contrôleur frontal

Voici un extrait de configuration INI montrant comment configurer la ressource de contrôleur frontal.

    [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.env = APPLICATION_ENV

## Récupération de votre contrôleur frontal à partir de votre initialiseur

Une fois la ressource de contrôleur frontal initialisée, vous pouvez récupérer l'instance via la propriété `$frontController` de votre initialiseur.

    $bootstrap->bootstrap('frontController');
    $front = $bootstrap->frontController;