| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect2 id="zend.application.available-resources.modules">
- <title>Zend_Application_Resource_Modules</title>
- <para>
- <classname>Zend_Application_Resource_Modules</classname> wird verwendet im eigene
- Anwendungsmodule zu initialisieren. Wenn das Modul eine <filename>Bootstrap.php</filename>
- Datei in seinem Root hat, und es eine Klasse die <classname>Module_Bootstrap</classname>
- heißt enthält (wobei "Module" der Modulname ist), dann wird diese Klasse verwendet um das
- Modul zu bootstrappen.
- </para>
- <para>
- Standardmäßig wird eine Instanz vom
- <classname>Zend_Application_Module_Autoloader</classname> für das Modul erstellt, indem der
- Modulname und das Verzeichnis dazu verwendet werden sie zu initialisieren.
- </para>
- <para>
- Da die Modul Ressourcen standardmäßig keine Argumente entgegen nehmen muss man, um das
- über die Konfiguration zu gestatten, diese als leeres Array erstellen. In der
- <acronym>INI</acronym> Stil Konfiguration sieht das etwa so aus:
- </para>
- <programlisting language="ini"><![CDATA[
- resources.modules[] =
- ]]></programlisting>
- <para>
- In <acronym>XML</acronym> Stil Konfiguration sieht das etwa so aus:
- </para>
- <programlisting language="xml"><![CDATA[
- <resources>
- <modules>
- <!-- Platzhlter um sicherzustellen das ein Array erstellt wird -->
- <placeholder />
- </modules>
- </resources>
- ]]></programlisting>
- <para>
- Bei Verwendung eines <acronym>PHP</acronym> Arrays, einfach Erstellen indem ein leeres
- Array verwendet wird:
- </para>
- <programlisting language="php"><![CDATA[
- $options = array(
- 'resources' => array(
- 'modules' => array(),
- ),
- );
- ]]></programlisting>
- <note>
- <title>Abhängigkeiten der Front Controller Ressource</title>
- <para>
- Die Module Ressource hat eine Abhängigkeit zur
- <link linkend="zend.application.available-resources.frontcontroller">Front Controller
- Ressource</link>. Man kann natürlich seine eigenen Ersatz für diese Ressource, über
- eine eigene Front Controller Ressource Klasse, anbieten oder eine
- Initialisierungsmethode für eine Klasse -- solange die Ressource Plugin Klasse mit
- "Frontcontroller" endet, oder die Initialisierungsmethode "_initFrontController"
- heißt (abhängig von der Groß- und Kleinschreibung).
- </para>
- </note>
- <example id="zend.application.available-resources.modules.configExample">
- <title>Module konfigurieren</title>
- <para>
- Man kann eine modul-spezifische Konfiguration spezifizieren indem der Modulname als
- Präfix oder Unter-Sektion in der Konfigurationsdatei verwendet wird.
- </para>
- <para>
- Nehmen wir als Beispiel an, das die eigene Anwendung ein "news" Modul hat. Nachfolgend
- sind die <acronym>INI</acronym> und <acronym>XML</acronym> Beispiele die eine
- Konfiguration von Ressourcen in diesem Modul zeigen.
- </para>
- <programlisting language="ini"><![CDATA[
- [production]
- news.resources.db.adapter = "pdo_mysql"
- news.resources.db.params.host = "localhost"
- news.resources.db.params.username = "webuser"
- news.resources.db.params.password = "XXXXXXX"
- news.resources.db.params.dbname = "news"
- ]]></programlisting>
- <programlisting language="xml"><![CDATA[
- <?xml version="1.0"?>
- <config>
- <production>
- <news>
- <resources>
- <db>
- <adapter>pdo_mysql</adapter>
- <params>
- <host>localhost</host>
- <username>webuser</username>
- <password>XXXXXXX</password>
- <dbname>news</dbname>
- </params>
- <isDefaultAdapter>true</isDefaultAdapter>
- </db>
- </resources>
- </news>
- </production>
- </config>
- ]]></programlisting>
- </example>
- <example id="zend.application.available-resources.modules.retrieveBootstrapExample">
- <title>Eine spezielle Modul Bootstrap erhalten</title>
- <para>
- Manchmal will man ein Bootstrap Objekt für ein spezifisches Modul erhalten --
- möglicherweise um andere Bootstrap Methoden auszuführen, oder um den Autoloader zu
- holen damit er konfiguriert werden kann. Das kann man erreichen indem die
- <methodname>getExecutedBootstraps()</methodname> Methode der Modul Ressource verwendet
- wird.
- </para>
- <programlisting language="php"><![CDATA[
- $resource = $bootstrap->getPluginResource('modules');
- $moduleBootstraps = $resource->getExecutedBootstraps();
- $newsBootstrap = $moduleBootstraps['news'];
- ]]></programlisting>
- </example>
- </sect2>
|