# 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ß- oder Kleinschreibung:

- controllerDirectory: Entweder ein Stringwert der ein einzelnes Controller Verzeichnis spezifiziert, oder ein Array von Modul und 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. Wenn man ein Plugin mit einem speziellen Stackindex registriert muss man ein Array mit den zwei Schlüsseln class und stackIndex angeben.

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

- returnresponse: Ob das Response Objekt nach dem Dispatchen des Front Controllers zurückgegeben wird oder nicht. Der Wert sollte ein Boolean sein; standardmäßig ist er deaktiviert.

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.plugins.baz.class = "My_Plugin_Baz"
    resources.frontController.plugins.baz.stackIndex = 123
    resources.frontController.returnresponse = 1
    resources.frontController.env = APPLICATION_ENV

    ; Das folgende verweist auf:
    ; Zend_Controller_Action_HelperBroker::addPath('Helper_Path', $helperPrefix);
    resources.frontController.actionHelperPaths.HELPER_Prefix = "My/Helper/Path"

## 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;