Zend Framework - Hệ thống mô-đun

Zend Framework cung cấp một hệ thống mô-đun mạnh mẽ. Hệ thống mô-đun có ba thành phần. Chúng như sau:

  • Module Autoloader- Trình tự động tải mô-đun chịu trách nhiệm định vị và tải mô-đun từ nhiều nguồn khác nhau. Nó có thể tải các mô-đun được đóng gói dưới dạngPhar archivescũng. Việc triển khai Trình tự động tải mô-đun được đặt tại myapp / nhà cung cấp / zendframework / zend-loader / src / ModuleAutoloader.php.

  • Module Manager- Khi Trình tự động tải mô-đun định vị các mô-đun, trình quản lý mô-đun sẽ kích hoạt một chuỗi sự kiện cho mỗi mô-đun. Việc triển khai Trình quản lý mô-đun được đặt tại myapp / nhà cung cấp / zendframework / zendmodulemanager / src / ModuleManager.php.

  • Module Manager Listeners- Chúng có thể được đính kèm với các sự kiện do Trình quản lý mô-đun kích hoạt. Bằng cách gắn vào các sự kiện của trình quản lý mô-đun, họ có thể làm mọi thứ từ giải quyết và tải mô-đun đến thực hiện công việc phức tạp cho từng mô-đun.

Hệ thống mô-đun web MVC

Ứng dụng Web MVC trong Zend Framework thường được viết dưới dạng Mô-đun. Một trang web có thể chứa một hoặc nhiều mô-đun được nhóm theo chức năng. Cấu trúc được đề xuất cho mô-đun hướng MVC như sau:

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>

Cấu trúc tương tự như đã thảo luận trong chương trước, nhưng ở đây nó là chung chung. Cácautoload_ files có thể được sử dụng làm cơ chế mặc định để tự động tải các lớp có sẵn trong mô-đun mà không cần sử dụng nâng cao Module Manager có sẵn trong zend-modulemanager.

  • autoload_classmap.php - Trả về một mảng tên lớp và tên tệp tương ứng của nó.

  • autoload_function.php- Trả về một lệnh gọi lại PHP. Điều này có thể sử dụng các lớp được trả về bởi autoload_classmap.php.

  • autoload_register.php - Đăng ký lệnh gọi lại PHP được trả về bởi autoload_ Chức năng.php.

Các tệp tự động tải này không bắt buộc nhưng được khuyến nghị. Trong ứng dụng khung xương, chúng tôi đã không sử dụngautoload_ files.

Lớp mô-đun

Lớp Mô-đun phải được đặt tên Module và không gian tên của lớp mô-đun phải là Module name. Điều này sẽ giúp Zend Framework giải quyết và tải mô-đun dễ dàng. CácApplication mã mô-đun trong ứng dụng khung xương (myapp), myapp / module / Application / src / Module.php như sau:

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

Trình quản lý mô-đun Zend Framework sẽ gọi getConfig() hoạt động tự động và sẽ thực hiện các bước cần thiết.