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.