1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
|
<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- 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 <varname>$frontController</varname>
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ß- oder Kleinschreibung:
</para>
<itemizedlist>
<listitem>
<para>
<emphasis><property>controllerDirectory</property></emphasis>: Entweder ein
Stringwert der ein einzelnes Controller Verzeichnis spezifiziert, oder ein Array von
Modul und Controller Verzeichnis Paaren.
</para>
</listitem>
<listitem>
<para>
<emphasis><property>moduleControllerDirectoryName</property></emphasis>: Ein
Stringwert der auf ein Unterverzeichnis unter einem Modul zeigt, das Controller
enthält.
</para>
</listitem>
<listitem>
<para>
<emphasis><property>moduleDirectory</property></emphasis>: Verzeichnis in dem Module
gefunden werden können.
</para>
</listitem>
<listitem>
<para>
<emphasis><property>defaultControllerName</property></emphasis>: Basisname des
Standard Controllers (normalerweise "index").
</para>
</listitem>
<listitem>
<para>
<emphasis><property>defaultAction</property></emphasis>: Basisname der Standard
Aktion (normalerweise "index").
</para>
</listitem>
<listitem>
<para>
<emphasis><property>defaultModule</property></emphasis>: Basisname des Standard
Moduls (normalerweise "default").
</para>
</listitem>
<listitem>
<para>
<emphasis><property>baseUrl</property></emphasis>: Explizite Basis
<acronym>URL</acronym> zur Anwendung (normalerweise automatisch erkannt).
</para>
</listitem>
<listitem>
<para>
<emphasis><property>plugins</property></emphasis>: 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 <property>class</property> und <property>stackIndex</property> angeben.
</para>
</listitem>
<listitem>
<para>
<emphasis><property>params</property></emphasis>: Array von Schlüssel und Wert
Paaren die mit dem Front Controller registriert werden sollen.
</para>
</listitem>
<listitem>
<para>
<emphasis><property>returnresponse</property></emphasis>: 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.
</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 <methodname>setParam()</methodname> ü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 <acronym>INI</acronym> Abschnitts der zeigt wie die Front
Controller Ressource konfiguriert werden kann.
</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.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"
]]></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 <varname>$frontController</varname> Eigenschaft der Bootstraps geholt
werden.
</para>
<programlisting language="php"><![CDATA[
$bootstrap->bootstrap('frontController');
$front = $bootstrap->frontController;
]]></programlisting>
</example>
</sect2>
|