动作就是指被定义为一个以action单词作为前缀命名的方法。而更高级的方式是定义一个动作类并让控制器在收到请求时将其实例化。这使得动作可以被复用,提高了可复用度。
1、定义一个动作类,基本格式如下:
class UpdateAction extends CAction{ public function run(){ //...逻辑代码... } }
2、使用动作类:为了让控制器注意到这个动作,我们要用如下方式覆盖控制器类的actions()方法:
class PostController extends CController{ public function actions(){ return array( //使用"应用程序文件夹/controllers/post/UpdateAction.php" 文件中的类来处理edit动作 'edit'=>'application.controllers.post.UpdateAction', ); } }
如上所示,我们使用了路径别名 application.controllers.post.UpdateAction 指定动作类文件为 protected/controllers/post/UpdateAction.php
通过编写基于类的动作,我们可以将应用组织为模块的风格。