# Zend_Application_Resource_Frontcontroller

Die warscheinlich am meisten verwendete Ressource die man mit `Zend_Application` verwenden wird, ist die Front Controller Ressource, die eine Möglichkeit bietet den `Zend_Controller_Front` zu konfigurieren. Diese Ressource bietet die Möglichkeit verschiedenste Front Controller Parameter zu setzen, Plugins zu spezifizieren die initialisiert werden sollen, und vieles mehr.

Sobald Sie initialisiert wurde, fügt die Ressource die `$frontController` Eigenschaft vom Bootstrap in die `Zend_Controller_Front` Instanz hinzu.

Die folgenden Konfigurationsschlüssel sind vorhanden, und sind abhängig von der Groß-/Kleinschreibung:

- controllerDirectory: Entweder ein Stringwert der ein einzelnes Controller Verzeichnis spezifiziert, oder ein Array von Modul/Controller Verzeichnis Paaren.

- moduleControllerDirectoryName: Ein Stringwert der auf ein Unterverzeichnis unter einem Modul zeigt, das Controller enthält.

- moduleDirectory: Verzeichnis in dem Module gefunden werden können.

- defaultControllerName: Basisname des Standard Controllers (normalerweise "index").

- defaultAction: Basisname der Standard Aktion (normalerweise "index").

- defaultModule: Basisname des Standard Moduls (normalerweise "default").

- baseUrl: Explizite Basis URL zur Anwendung (normalerweise automatisch erkannt).

- plugins: Array von Front Controller Plugin Klassennamen. Die Ressource wird jede Klasse instanziieren (ohne Contructor Argumente) und die Instanz dann mit dem Front Controller registrieren.

- params: Array von Schlüssel/Wert Paaren die mit dem Front Controller registriert werden sollen.

Wenn ein Schlüssel übergeben wird der nicht erkannt wird, wird dieser als Parameter beim Front Controller registriert, indem er an `setParam()` übergeben wird.

## Beispiel der Konfiguration einer Front Controller Ressource

Anbei ist ein Beispiel eines INI Abschnitts der zeigt wie die Front Controller Ressource konfiguriert werden kann.

    [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

## Empfangen des Front Controllers im eigenen Bootstrap

Sobald die Front Controller Ressource initialisiert wurde, kann die Front Controller Instanz über die `$frontController` Eigenschaft der Bootstraps geholt werden.

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