<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 15289 -->
<!-- Reviewed: no -->
<sect2 id="zend.application.available-resources.frontcontroller">
    <title>Zend_Application_Resource_Frontcontroller</title>

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

    <para>
        Sobald Sie initialisiert wurde, fügt die Ressource die <code>frontController</code>
        Eigenschaft vom Bootstrap in die <classname>Zend_Controller_Front</classname> Instanz hinzu.
    </para>

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

    <itemizedlist>
        <listitem><para>
            <code>controllerDirectory</code>: Entweder ein Stringwert der ein einzelnes Controller
            Verzeichnis spezifiziert, oder ein Array von Modul/Controller Verzeichnis Paaren.
        </para></listitem>

        <listitem><para>
            <code>moduleControllerDirectoryName</code>: Ein Stringwert der auf ein Unterverzeichnis
            unter einem Modul zeigt, das Controller enthält.
        </para></listitem>

        <listitem><para>
            <code>moduleDirectory</code>: Verzeichnis in dem Module gefunden werden können.
        </para></listitem>

        <listitem><para>
            <code>defaultControllerName</code>: Basisname des Standard Controllers (normalerweise
            "index").
        </para></listitem>

        <listitem><para>
            <code>defaultAction</code>: Basisname der Standard Aktion (normalerweise "index").
        </para></listitem>

        <listitem><para>
            <code>defaultModule</code>: Basisname des Standard Moduls (normalerweise "default").
        </para></listitem>

        <listitem><para>
            <code>baseUrl</code>: Explizite Basis URL zur Anwendung (normalerweise automatisch
            erkannt).
        </para></listitem>

        <listitem><para>
            <code>plugins</code>: Array von Front Controller Plugin Klassennamen. Die Ressource
            wird jede Klasse instanziieren (ohne Contructor Argumente) und die Instanz dann mit dem
            Front Controller registrieren.
        </para></listitem>

        <listitem><para>
            <code>params</code>: Array von Schlüssel/Wert Paaren die mit dem Front Controller
            registriert werden sollen.
        </para></listitem>
    </itemizedlist>

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

    <example id="zend.application.available-resources.frontcontroller.configExample">
        <title>Beispiel der Konfiguration einer Front Controller Ressource</title>

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

        <programlisting role="ini"><![CDATA[
[production]
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.moduleControllerDirectoryName = "actions"
resources.frontController.moduleController = 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>Empfangen des Front Controllers im eigenen Bootstrap</title>

        <para>
            Sobald die Front Controller Ressource initialisiert wurde, kann die Front Controller
            Instanz über die <code>frontController</code> Eigenschaft der Bootstraps geholt werden.
        </para>

        <programlisting role="php"><![CDATA[
$bootstrap->bootstrap('frontController');
$front = $bootstrap->frontController;
]]></programlisting>
    </example>
</sect2>
