Zend Framework - Modulsystem
Das Zend Framework bietet ein leistungsstarkes Modulsystem. Das Modulsystem besteht aus drei Komponenten. Sie sind wie folgt -
Module Autoloader- Ein Modul-Autoloader ist für das Auffinden und Laden von Modulen aus verschiedenen Quellen verantwortlich. Es kann Module laden, die als verpackt sindPhar archivesauch. Die Implementierung des Modul-Autoloaders befindet sich unter myapp / vendor / zendframework / zend-loader / src / ModuleAutoloader.php.
Module Manager- Sobald der Modul-Autoloader die Module gefunden hat, löst der Modulmanager eine Folge von Ereignissen für jedes Modul aus. Die Implementierung des Modul-Managers befindet sich unter myapp / vendor / zendframework / zendmodulemanager / src / ModuleManager.php.
Module Manager Listeners- Sie können an die vom Modulmanager ausgelösten Ereignisse angehängt werden. Durch Anhängen an die Ereignisse des Modulmanagers können sie alles tun, vom Auflösen und Laden von Modulen bis zur Ausführung komplexer Arbeiten für jedes Modul.
MVC Web Module System
Die MVC-Webanwendung im Zend Framework wird normalerweise als Module geschrieben. Eine einzelne Website kann ein oder mehrere Module enthalten, die nach Funktionen gruppiert sind. Die empfohlene Struktur für MVC-orientierte Module lautet wie folgt:
module_root/
Module.php
autoload_classmap.php
autoload_function.php
autoload_register.php
config/
module.config.php
public/
images/
css/
js/
src/
<module_namespace>/
<code files>
test/
phpunit.xml
bootstrap.php
<module_namespace>/
<test code files>
view/
<dir-named-after-module-namespace>/
<dir-named-after-a-controller>/
<.phtml files>
Die Struktur ist dieselbe wie im vorherigen Kapitel beschrieben, aber hier ist sie allgemein gehalten. Dasautoload_ files kann als Standardmechanismus zum automatischen Laden der im Modul verfügbaren Klassen verwendet werden, ohne die erweiterte Version zu verwenden Module Manager verfügbar in der zend-modulemanager.
autoload_classmap.php - Gibt ein Array mit Klassennamen und dem entsprechenden Dateinamen zurück.
autoload_function.php- Gibt einen PHP-Rückruf zurück. Dies kann Klassen verwenden, die von autoload_classmap.php zurückgegeben werden.
autoload_register.php - Registriert den PHP-Rückruf, der von der Datei autoload_function.php zurückgegeben wird.
Diese Autoload-Dateien sind nicht erforderlich, werden jedoch empfohlen. In der Skelettanwendung haben wir das nicht verwendetautoload_ files.
Modulklasse
Die Modulklasse sollte benannt werden Module und der Namespace der Modulklasse sollte sein Module name. Dies hilft dem Zend Framework, das Modul einfach aufzulösen und zu laden. DasApplication Der Modulcode in der Skeleton-Anwendung (myapp), myapp / module / Application / src / Module.php, lautet wie folgt:
namespace Application;
class Module {
const VERSION = '3.0.2dev';
public function getConfig() {
return include __DIR__ . '/../config/module.config.php';
}
}
Der Zend Framework-Modulmanager ruft die auf getConfig() Funktioniert automatisch und führt die erforderlichen Schritte aus.