Bootstrap 類是 Zend Framework 應用程式初始化的核心,負責資源配置、依賴管理與啟動流程控制。本文深入解析三大核心介面與抽象類別,並提供實戰應用指南。
所有引導類必須實作的基礎介面,定義了應用程式啟動的標準契約:
| 方法 | 回傳值 | 參數 | 說明 |
|---|---|---|---|
| __construct | void | $application | 接受 Zend_Application 或另一個引導物件 |
| setOptions | Bootstrapper | array $options | 配置選項陣列,可映射至對應 setter |
| getApplication | Application|Bootstrapper | 無 | 取得應用程式實例 |
| getEnvironment | string | 無 | 取得執行環境 |
| bootstrap | mixed | $resource = null | 啟動指定或所有資源 |
| run | void | 無 | 執行完整引導流程 |
專門管理外部資源插件的介面,支援資源的動態註冊與發現:
registerPluginResource() - 註冊資源類別unregisterPluginResource() - 移除資源hasPluginResource() / getPluginResource() - 檢查與取得資源getPluginResourceNames() - 列出所有資源名稱setPluginLoader() / getPluginLoader() - 管理插件載入器實作上述兩個介面的抽象基類,提供完整的引導基礎功能:
getContainer()、setContainer()hasResource()、getResource()__call() 支援 bootstrapResourceName() 簡寫呼叫getOptions()、hasOption()、getOption()這是最常用的具體實作類別,主要功能包含資源註冊與 run() 執行。典型繼承方式:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
protected $_appNamespace = 'Application';
protected function _initView() {
// 初始化視圖資源
}
protected function _initDb() {
// 初始化資料庫連線
}
}
透過 appnamespace 設定啟用模組自動載入:
; application.ini appnamespace = "Application"
或在類別中直接指定:
protected $_appNamespace = 'Application';
框架將自動實例化 Zend_Application_Module_Autoloader,依據命名空間與目錄結構載入類別。
_initResourceName() 格式,對應 bootstrap('resourceName') 呼叫$this->bootstrap('dependency') 確保載入順序APPLICATION_ENV 區分 development/production 設定深入理解 Bootstrap 架構,能讓你建構出模組化、可擴充且易於測試的 Zend Framework 應用程式。