模塊是獨(dú)立的軟件單元,由模型,視圖, 控制器和其他支持組件組成, 終端用戶可以訪問在應(yīng)用主體中已安裝的模塊的控制器, 模塊被當(dāng)成小應(yīng)用主體來看待,和應(yīng)用主體不同的是, 模塊不能單獨(dú)部署,必須屬于某個(gè)應(yīng)用主體。
創(chuàng)建模塊 (推薦學(xué)習(xí):yii框架)
模塊被組織成一個(gè)稱為 base path 的目錄, 在該目錄中有子目錄如 controllers,models,views 分別為對(duì)應(yīng)控制器,模型,視圖和其他代碼,和應(yīng)用非常類似。 如下例子顯示一個(gè)模型的目錄結(jié)構(gòu):
forum/ Module.php 模塊類文件 controllers/ 包含控制器類文件 DefaultController.php default 控制器類文件 models/ 包含模型類文件 views/ 包含控制器視圖文件和布局文件 layouts/ 包含布局文件 default/ 包含 DefaultController 控制器視圖文件 index.php index 視圖文件
模塊類
每個(gè)模塊都有一個(gè)繼承 yiibaseModule 的模塊類, 該類文件直接放在模塊的 base path 目錄下, 并且能被 自動(dòng)加載。當(dāng)一個(gè)模塊被訪問, 和 應(yīng)用主體實(shí)例 類似會(huì)創(chuàng)建該模塊類唯一實(shí)例,模塊實(shí)例用來幫模塊內(nèi)代碼共享數(shù)據(jù)和組件。
以下示例一個(gè)模塊類大致定義:
namespace appmodulesforum; class Module extends yiibaseModule { public function init() { parent::init(); $this->params['foo'] = 'bar'; // ... 其他初始化代碼 ... } }