Zend Framework - Sistema di moduli
Zend Framework fornisce un potente sistema di moduli. Il sistema del modulo ha tre componenti. Sono i seguenti:
Module Autoloader- Un caricatore automatico di moduli è responsabile della localizzazione e del caricamento dei moduli da varie fonti. Può caricare moduli confezionati comePhar archivesanche. L'implementazione del Module Autoloader si trova in myapp / vendor / zendframework / zend-loader / src / ModuleAutoloader.php.
Module Manager- Una volta che il caricatore automatico del modulo individua i moduli, il gestore del modulo attiva una sequenza di eventi per ogni modulo. L'implementazione del Module Manager si trova in myapp / vendor / zendframework / zendmodulemanager / src / ModuleManager.php.
Module Manager Listeners- Possono essere allegati agli eventi attivati dal Module Manager. Collegandosi agli eventi del gestore dei moduli, possono fare di tutto, dalla risoluzione e il caricamento dei moduli all'esecuzione di lavori complessi per ogni modulo.
MVC Web Module System
L'applicazione Web MVC in Zend Framework è solitamente scritta come moduli. Un singolo sito Web può contenere uno o più moduli raggruppati per funzionalità. La struttura consigliata per il modulo MVC-Oriented è la seguente:
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>
La struttura è la stessa discussa nel capitolo precedente, ma qui è generica. Ilautoload_ files può essere utilizzato come meccanismo predefinito per il caricamento automatico delle classi disponibili nel modulo senza utilizzare advanced Module Manager disponibile in zend-modulemanager.
autoload_classmap.php - Restituisce un array del nome della classe e il nome del file corrispondente.
autoload_function.php- Restituisce una richiamata PHP. Questo può utilizzare le classi restituite da autoload_classmap.php.
autoload_register.php - Registra il callback PHP restituito da autoload_function.php.
Questi file di caricamento automatico non sono necessari ma consigliati. Nell'applicazione scheletro, non abbiamo utilizzato l'estensioneautoload_ files.
Classe del modulo
La classe Module dovrebbe essere denominata Module e lo spazio dei nomi della classe del modulo dovrebbe essere Module name. Ciò aiuterà Zend Framework a risolvere e caricare facilmente il modulo. IlApplication il codice del modulo nell'applicazione skeleton (myapp), myapp / module / Application / src / Module.php è il seguente:
namespace Application;
class Module {
const VERSION = '3.0.2dev';
public function getConfig() {
return include __DIR__ . '/../config/module.config.php';
}
}
Il gestore del modulo Zend Framework chiamerà il file getConfig() funziona automaticamente e farà i passaggi necessari.