Zend Framework - system modułowy
Zend Framework zapewnia potężny system modułów. System modułowy składa się z trzech elementów. Są następujące -
Module Autoloader- Moduł Autoloader jest odpowiedzialny za lokalizowanie i ładowanie modułów z różnych źródeł. Może ładować moduły spakowane jakoPhar archivestakże. Implementacja modułu Autoloader znajduje się pod adresem myapp / vendor / zendframework / zend-loader / src / ModuleAutoloader.php.
Module Manager- Gdy moduł ładujący moduły zlokalizuje moduły, menedżer modułów odpala sekwencję zdarzeń dla każdego modułu. Implementacja Menedżera modułów znajduje się pod adresem myapp / vendor / zendframework / zendmodulemanager / src / ModuleManager.php.
Module Manager Listeners- Mogą być dołączane do zdarzeń uruchamianych przez Menedżera modułów. Dołączając do wydarzeń menedżera modułów, mogą robić wszystko, od rozwiązywania i ładowania modułów do wykonywania złożonej pracy dla każdego modułu.
System modułów sieciowych MVC
Aplikacja internetowa MVC w Zend Framework jest zwykle napisana jako Moduły. Pojedyncza witryna internetowa może zawierać jeden lub więcej modułów pogrupowanych według funkcjonalności. Zalecana struktura modułu zorientowanego na MVC jest następująca -
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>
Struktura jest taka sama, jak omówiono w poprzednim rozdziale, ale tutaj jest ogólna. Plikautoload_ files może być użyty jako domyślny mechanizm automatycznego ładowania klas dostępnych w module bez korzystania z zaawansowanego Module Manager dostępne w zend-modulemanager.
autoload_classmap.php - Zwraca tablicę nazw klas i odpowiadających im nazw plików.
autoload_function.php- Zwraca wywołanie zwrotne PHP. Może to wykorzystywać klasy zwrócone przez autoload_classmap.php.
autoload_register.php - Rejestruje wywołanie zwrotne PHP, które jest zwracane przez autoload_function.php.
Te pliki do automatycznego ładowania nie są wymagane, ale zalecane. W aplikacji szkieletu nie używaliśmy rozszerzeniaautoload_ files.
Klasa modułu
Należy nazwać klasę Module Module a przestrzeń nazw klasy modułu powinna być Module name. Pomoże to Zend Framework w łatwym rozwiązaniu i załadowaniu modułu. PlikApplication kod modułu w aplikacji szkieletowej (myapp), myapp / module / Application / src / Module.php wygląda następująco -
namespace Application;
class Module {
const VERSION = '3.0.2dev';
public function getConfig() {
return include __DIR__ . '/../config/module.config.php';
}
}
Menedżer modułów Zend Framework wywoła rozszerzenie getConfig() działa automatycznie i wykona niezbędne kroki.