# Zend_Application_Resource_Modules

`Zend_Application_Resource_Modules` wird verwendet im eigene Anwendungsmodule zu initialisieren. Wenn das Modul eine `Bootstrap.php` Datei in seinem Root hat, und es eine Klasse die `Module_Bootstrap` heißt enthält (wobei "Module" der Modulname ist), dann wird diese Klasse verwendet um das Modul zu bootstrappen.

Standardmäßig wird eine Instanz vom `Zend_Application_Module_Autoloader` für das Modul erstellt, indem der Modulname und das Verzeichnis dazu verwendet werden sie zu initialisieren.

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 INI Stil Konfiguration sieht das etwa so aus:

    resources.modules[] =

In XML Stil Konfiguration sieht das etwa so aus:

    <resources>
        <modules>
            <!-- Platzhlter um sicherzustellen das ein Array erstellt wird
            <placeholder />
        </modules>
    </resources>

Bei Verwendung eines PHP Arrays, einfach Erstellen indem ein leeres Array verwendet wird:

    $options = array(
        'resources' => array(
            'modules' => array(),
        ),
    );

## Abhängigkeiten der Front Controller Ressource

Die Module Ressource hat eine Abhängigkeit zur Front Controller Ressource. 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ß-/Kleinschreibung).

## Module konfigurieren

Man kann eine modul-spezifische Konfiguration spezifizieren indem der Modulname als Präfix oder Unter-Sektion in der Konfigurationsdatei verwendet wird.

Nehmen wir als Beispiel an, das die eigene Anwendung ein "news" Modul hat. Nachfolgend sind die INI und XML Beispiele die eine Konfiguration von Ressourcen in diesem Modul zeigen.

    [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"

    <?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>

## Eine spezielle Modul Bootstrap erhalten

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 `getExecutedBootstraps()` Methode der Modul Ressource verwendet wird.

    $resource = $bootstrap->getPluginResource('modules');
    $moduleBootstraps = $resource->getExecutedBootstraps();
    $newsBootstrap = $moduleBootstraps['news'];