黑马程序员技术交流社区

标题: 【上海校区】yii-使用CAction类的事件 [打印本页]

作者: 梦缠绕的时候    时间: 2019-1-14 09:26
标题: 【上海校区】yii-使用CAction类的事件
事件通常按以下方式使用:提示
如果我们查看 Ccomponent 的魔术方法 __set, 我们就会发现事件处理程序通常像属性一样设置。 考虑到这些,以下是我的关于设置 CAction 类的事件处理程序的快速提示,我认为这是比较好的组织你的控制器的代码方法。
CAction 类
先写一个简单的 CAction 类的例子 EmyAction.php:
class EMyAction extends CAction{ public function onTest($event){ $this->raiseEvent('onTest', $event); } public function run() { $event = new CEvent($this); $this->onTest($event); } }
控制器
现在在我们的控制器中写一个事件处理程序的方法并且配置这个 action(假设在 controllers文件夹下的actions 文件夹下)
// 我们的事件处理程序的方法,为简单起见我们写在控制器里面 public function eventHandlerMethod($event) { echo 'TESTING Handler'; } // 声明 actions 和事件处理程序 public function actions() { return array( // test 是动作的名称  'test'=>array( 'class'=>'actions.EMyAction', 'onTest'=>array($this,'eventHandlerMethod') ) ); }
现在所有代码都以完成,你可以使用任何浏览器来测试结果。


作者: 不二晨    时间: 2019-1-16 09:11
奈斯




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2