| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 22741 -->
- <!-- 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>
|