Zend Framework - Modül Sistemi
Zend Framework, güçlü bir modül sistemi sağlar. Modül sisteminin üç bileşeni vardır. Bunlar aşağıdaki gibidir -
Module Autoloader- Modül Otomatik Yükleyici, çeşitli kaynaklardan modüllerin konumlandırılmasından ve yüklenmesinden sorumludur. Paketlenmiş modülleriPhar archivesyanı sıra. Module Autoloader uygulaması myapp / vendor / zendframework / zend-loader / src / ModuleAutoloader.php adresinde bulunur.
Module Manager- Modül Otomatik Yükleyicisi modülleri bulduğunda, modül yöneticisi her modül için bir dizi olay başlatır. Modül Yöneticisinin uygulaması myapp / vendor / zendframework / zendmodulemanager / src / ModuleManager.php adresinde bulunur.
Module Manager Listeners- Modül Yöneticisi tarafından tetiklenen olaylara eklenebilirler. Modül yöneticisinin olaylarına ekleyerek, modülleri çözme ve yüklemeden her modül için karmaşık işler yapmaya kadar her şeyi yapabilirler.
MVC Web Modül Sistemi
Zend Framework'teki MVC Web Uygulaması genellikle Modüller olarak yazılır. Tek bir web sitesi, işlevselliğe göre gruplandırılmış bir veya daha fazla modül içerebilir. MVC-Oriented modül için önerilen yapı aşağıdaki gibidir -
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>
Yapı, önceki bölümde tartışılanla aynıdır, ancak burada geneldir. autoload_ files modülde bulunan sınıfları gelişmiş kullanmadan otomatik olarak yüklemek için varsayılan bir mekanizma olarak kullanılabilir. Module Manager mevcut zend-modulemanager.
autoload_classmap.php - Bir sınıf adı dizisi ve buna karşılık gelen dosya adını döndürür.
autoload_function.php- Bir PHP geri araması döndürür. Bu, autoload_classmap.php tarafından döndürülen sınıfları kullanabilir.
autoload_register.php - autoload_function.php tarafından döndürülen PHP geri çağrısını kaydeder.
Bu otomatik yükleme dosyaları gerekli değildir, ancak önerilir. İskelet uygulamasında biz kullanmadıkautoload_ files.
Modül Sınıfı
Module sınıfı adlandırılmalıdır Module ve modül sınıfının ad alanı olmalıdır Module name. Bu, Zend Framework'ün modülü kolayca çözmesine ve yüklemesine yardımcı olacaktır. Application iskelet (myapp) uygulamasındaki modül kodu, myapp / module / Application / src / Module.php aşağıdaki gibidir -
namespace Application;
class Module {
const VERSION = '3.0.2dev';
public function getConfig() {
return include __DIR__ . '/../config/module.config.php';
}
}
Zend Framework modül yöneticisi, getConfig() otomatik olarak çalışır ve gerekli adımları atar.