1) 打開Gii代碼生成工具,進入Module Generator頁面,輸入模塊名如test,點擊生成;
2) 生成的代碼在protected/modules/test目錄下,生成的文件如下:
test/TestModule.php ---- 模塊主類,繼承自CWebModule
test/controllers/DefaultController.php ----- 默認Controller,裡面有一個index action,action跳轉到index視圖;該模塊的Controller都放在這個目錄下
test/views/default/index.php --- 這是DefaultController的視圖文件,對應index action;所有DefaultController的action的視圖文件都放在這裡;
3) 配置模塊
在config/main.php裡的modules中加入該模塊:
'modules'=>array(
'main',
'admin',
'test',
),
4) 在模塊初始化函數中設置默認項:打開TestModule.php,在init方法中加入:
Yii::app()->errorHandler->errorAction = 'test/default/error';
Yii::app()->defaultController = 'test/default';
Yii::app()->user->loginUrl = 'test/default/login';
請確保這些action和controller都已經實現。
5) 打開浏覽器,訪問:http://127.0.0.1/zuizen/test/即可訪問到默認的首頁,這個首頁是默認Controller DefaultController裡的默認Index action跳轉到的default/index.php的視圖。
6) Yii的模塊中,所有Controller全部放在conroller目錄下,每一個controller都對應一個目錄,目錄位於views下,裡面存放該controller所有action對應的view。一般來講,一個獨立action都會對應一個view。
7) 加入需要添加模塊獨有的model和component,則都加在test/models 和test/components目錄下,在TestModule模塊類中會自動將他們引入:
$this->setImport(array(
'test.models.*',
'test.components.*',
));
8) 需要添加模塊獨有的layout,請加到test/views/layouts目錄下,使用該layout時使用:/layouts/layoutName來調用,layout可以嵌套,父layout用<?php echo $content; ?>來為子layout占位,子layout內容包含在以下語句中,其中指定父layout:
<?php $this->beginContent('/layouts/main'); ?>
<?php $this->endContent(); ?>
9) 在Controller中指定該Controller所有action默認使用的layout
在Controller類中定義以下變量,以覆蓋父類中的默認值:
public $layout='/layouts/main';
public $defaultAction='index';
如果要是有網站根目錄下的layout,需要將目錄的/換成//.