yii中的独立操作一般在哪些场景下使用?
程序员文章站
2022-05-04 12:11:37
...
请问这种独立于控制器的操作一般哪些情况下才会用到?我想了好久都没有发现实际开发中哪里会这样用到(而且我觉得这样会导致两个控制器之间产生偶合)
独立操作
独立操作通过继承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自带的验证码就是典型的使用实例