請問這種獨立於控制器的操作一般哪些情況下才會用到?我想了好久都沒有發現實際開發中哪裡會這樣用到(而且我覺得這樣會導致兩個控制器之間產生偶合)
獨立操作
獨立操作通過繼承yiibaseAction或它的子類來定義。
例如Yii發布的yiiwebViewAction和yiiwebErrorAction都是獨立操作。
要使用獨立操作,需要通過控制器中覆蓋yiibaseController::actions()方法在action
map中申明,如下例所示:
public function actions() {
return [ // 用類來申明"error" 操作 'error' => 'yii\web\ErrorAction', // 用配置數組申明 "view" 操作 'view' => [ 'class' => 'yii\web\ViewAction', 'viewPrefix' => '', ],]; } 如上所示, actions() 方法返回鍵為操作ID、值為對應操作類名或數組configurations 的數組。 和內聯操作不同,獨立操作ID可包含任一字元,只要在actions() 方法中申明.
為建立一個獨立操作類,需要繼承yiibaseAction 或它的子類,並實現公有的名稱為run()的方法, run()
方法的角色和操作方法類似,例如:
use yiibaseAction;
class HelloWorldAction extends Action {
public function run(){ return "Hello World";}
}
回複內容:
請問這種獨立於控制器的操作一般哪些情況下才會用到?我想了好久都沒有發現實際開發中哪裡會這樣用到(而且我覺得這樣會導致兩個控制器之間產生偶合)
獨立操作
獨立操作通過繼承yiibaseAction或它的子類來定義。
例如Yii發布的yiiwebViewAction和yiiwebErrorAction都是獨立操作。
要使用獨立操作,需要通過控制器中覆蓋yiibaseController::actions()方法在action
map中申明,如下例所示:
public function actions() {
return [ // 用類來申明"error" 操作 'error' => 'yii\web\ErrorAction', // 用配置數組申明 "view" 操作 'view' => [ 'class' => 'yii\web\ViewAction', 'viewPrefix' => '', ],]; } 如上所示, actions() 方法返回鍵為操作ID、值為對應操作類名或數組configurations 的數組。 和內聯操作不同,獨立操作ID可包含任一字元,只要在actions() 方法中申明.
為建立一個獨立操作類,需要繼承yiibaseAction 或它的子類,並實現公有的名稱為run()的方法, run()
方法的角色和操作方法類似,例如:
use yiibaseAction;
class HelloWorldAction extends Action {
public function run(){ return "Hello World";}
}
yii2內建的驗證碼就是典型的使用執行個體