Zend Framework - Sistem Modul

Zend Framework menyediakan sistem modul yang kuat. Sistem modul memiliki tiga komponen. Mereka adalah sebagai berikut -

  • Module Autoloader- Module Autoloader bertanggung jawab untuk mencari dan memuat modul dari berbagai sumber. Itu dapat memuat modul yang dikemas sebagaiPhar archivesdemikian juga. Implementasi Module Autoloader terletak di myapp / vendor / zendframework / zend-loader / src / ModuleAutoloader.php.

  • Module Manager- Setelah Module Autoloader menemukan modul, pengelola modul mengaktifkan urutan kejadian untuk setiap modul. Implementasi dari Module Manager terletak di myapp / vendor / zendframework / zendmodulemanager / src / ModuleManager.php.

  • Module Manager Listeners- Mereka dapat dilampirkan ke acara yang dipicu oleh Manajer Modul. Dengan melampirkan peristiwa manajer modul, mereka dapat melakukan segalanya mulai dari menyelesaikan dan memuat modul hingga melakukan pekerjaan kompleks untuk setiap modul.

Sistem Modul Web MVC

Aplikasi Web MVC di Zend Framework biasanya ditulis sebagai Modul. Sebuah situs web dapat berisi satu atau lebih modul yang dikelompokkan berdasarkan fungsionalitas. Struktur yang direkomendasikan untuk modul Berorientasi MVC adalah sebagai berikut -

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>

Strukturnya sama seperti yang dibahas pada bab sebelumnya, tetapi di sini bersifat umum. Ituautoload_ files dapat digunakan sebagai mekanisme default untuk memuat otomatis kelas yang tersedia dalam modul tanpa menggunakan lanjutan Module Manager tersedia di zend-modulemanager.

  • autoload_classmap.php - Mengembalikan larik nama kelas dan nama file yang sesuai.

  • autoload_function.php- Mengembalikan callback PHP. Ini dapat memanfaatkan kelas yang dikembalikan oleh autoload_classmap.php.

  • autoload_register.php - Mendaftarkan callback PHP yang dikembalikan oleh autoload_function.php.

File muat otomatis ini tidak diperlukan tetapi direkomendasikan. Dalam aplikasi kerangka, kami belum menggunakanautoload_ files.

Kelas Modul

Kelas Modul harus diberi nama Module dan namespace dari kelas modul harus Module name. Ini akan membantu Zend Framework untuk menyelesaikan dan memuat modul dengan mudah. ItuApplication kode modul di aplikasi kerangka (myapp), myapp / module / Application / src / Module.php adalah sebagai berikut -

namespace Application; 
class Module { 
   const VERSION = '3.0.2dev'; 
   public function getConfig() { 
      return include __DIR__ . '/../config/module.config.php'; 
   } 
}

Manajer modul Zend Framework akan memanggil file getConfig() berfungsi secara otomatis dan akan melakukan langkah-langkah yang diperlukan.