Zend_Application_Resource_ModulesZend_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:
In XML Stil Konfiguration sieht das etwa so aus:
]]>
Bei Verwendung eines PHP Arrays, einfach Erstellen indem ein leeres
Array verwendet wird:
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ß- und 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.
pdo_mysqllocalhostwebuserXXXXXXXnewstrue
]]>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.
getPluginResource('modules');
$moduleBootstraps = $resource->getExecutedBootstraps();
$newsBootstrap = $moduleBootstraps['news'];
]]>