創建模塊有以下步驟:
步驟1:
在yii框架的根目錄新建一個目錄modules,當然也可以使用其他命名。
在modules目錄中,再創建三個controllers、models、views目錄,用來放什麼的就不用說了。最重要的是下面這個Admin.php類文件。
<?php
namespace app\modules;
use yii\base\Module;
class Admin extends Module
{
public $controllerNamespace='app\modules\controllers';
public function init(){
parent::init();
}
}
該類文件可以聲明接下來在該模塊中使用的控制器的命名命名空間,如果不聲明的話,默認是按照該類聲明時使用的命名空間+controllers,例如 app\modules\controllers。init函數是爲了初始化模塊屬性代碼,必須被覆蓋重寫。步驟2:
創建了模塊文件後,就必須在/config/web.php文件中添加模塊參數。
'modules'=>[
'admin'=>[
'class'=>'app\modules\Admin'
]
]
也就是向$config變量中添加了modules參數,即$config['modules']['admin'],其中admin是在路由中進行訪問的模塊id, class是指定模塊初始化文件的路徑,這裏使用的命名空間的訪問方法。
步驟3:
在剛纔創建的目錄中,即\modules\controllers創建TestController控制器
TestController代碼:
<?php /** Date: 18-5-15 Time: 下午8:01*/ namespace app\modules\controllers; use yii\web\Controller; class TestController extends Controller{ public function actionTest(){ $this->layout=false; return $this->render('test'); } }
其中$this->layout是禁用該視圖使用佈局,若不禁用的話,該視圖將使用默認視圖中的佈局,即\views\layout\main.php
然後在視圖文件中,創建對應的視圖文件
test.php代碼:
<?php /** Date: 18-5-15 Time: 下午8:02*/ echo "this is test";
步驟4:
訪問模塊中的控制器
按照 模塊/控制器/方法來訪問,在此例中就是modules/test/test
所以訪問的路由是:localhost?r=module/test/test