- Zend Framework 教程
- Zend Framework - 首頁
- Zend Framework - 簡介
- Zend Framework - 安裝
- 框架應用程式
- Zend Framework - MVC 架構
- Zend Framework - 概念
- Zend Framework - 服務管理器
- Zend Framework - 事件管理器
- Zend Framework - 模組系統
- 應用程式結構
- Zend Framework - 建立模組
- Zend Framework - 控制器
- Zend Framework - 路由
- Zend Framework - 檢視層
- Zend Framework - 佈局
- 模型與資料庫
- 不同的資料庫
- 表單與驗證
- Zend Framework - 檔案上傳
- Zend Framework - Ajax
- Cookie 管理
- 會話管理
- Zend Framework - 身份驗證
- 郵件管理
- Zend Framework - 單元測試
- Zend Framework - 錯誤處理
- Zend Framework - 工作示例
- Zend Framework 有用資源
- Zend Framework - 快速指南
- Zend Framework - 有用資源
- Zend Framework - 討論
Zend Framework - 模組系統
Zend Framework 提供了一個強大的模組系統。該模組系統包含三個元件,如下所示:
模組自動載入器 - 模組自動載入器負責從各種來源定位和載入模組。它也可以載入打包為Phar 歸檔檔案的模組。模組自動載入器的實現位於 myapp/vendor/zendframework/zend-loader/src/ModuleAutoloader.php。
模組管理器 - 模組自動載入器找到模組後,模組管理器會為每個模組觸發一系列事件。模組管理器的實現位於 myapp/vendor/zendframework/zendmodulemanager/src/ModuleManager.php。
模組管理器監聽器 - 它們可以附加到模組管理器觸發的事件。透過附加到模組管理器的事件,它們可以執行從解析和載入模組到為每個模組執行復雜工作的任何操作。
MVC Web 模組系統
Zend Framework 中的 MVC Web 應用程式通常編寫為模組。單個網站可以包含一個或多個按功能分組的模組。面向 MVC 的模組的推薦結構如下:
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>
該結構與上一章中討論的相同,但這裡它是通用的。autoload_ 檔案可以用作自動載入模組中可用類的預設機制,而無需使用zend-modulemanager中提供的更高階的模組管理器。
autoload_classmap.php - 返回一個類名及其對應檔名陣列。
autoload_function.php - 返回一個 PHP 回撥函式。這可以使用 autoload_classmap.php 返回的類。
autoload_register.php - 註冊 autoload_function.php 返回的 PHP 回撥函式。
這些自動載入檔案不是必需的,但建議使用。在框架應用程式中,我們沒有使用autoload_ 檔案。
模組類
模組類應命名為Module,模組類的名稱空間應為模組名。這將幫助 Zend Framework 更輕鬆地解析和載入模組。框架應用程式 (myapp) 應用程式中的Application 模組程式碼,myapp/module/Application/src/Module.php 如下所示:
namespace Application;
class Module {
const VERSION = '3.0.2dev';
public function getConfig() {
return include __DIR__ . '/../config/module.config.php';
}
}
Zend Framework 模組管理器將自動呼叫getConfig()函式,並執行必要的步驟。