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.