Yii的事件机制
来源:互联网 发布:初中校园网络文化活动 编辑:程序博客网 时间:2024/06/05 05:00
1.环境搭建
我们在vendor目录创建event测试目录包含cat和mouse的两个类
要想拥有事件机制就要继承yii\base\Component 其中包含事件的触发 绑定 解绑等方法
cat:
namespace vendor\event;use yii\base\Component;use yii\base\Event;//创建一个事件对象 用于传递数据class MyEvent extends Event{ public $message; public function data(){ echo 'abc'; }}//必须继承组件类 - 其中包含事件处理方法class Cat extends Component{ public function shout(Event $event){ echo 'miao miao miao<br />'; //当shout方法执行时触发miao事件 并接收一个参数 $this->trigger('miao',$event); }}
mouse:namespace vendor\event;class Mouse{ public function run($data){ //自定义事情 echo 'I want to run away<br />'; //处理参数 echo $data->message; $data->data(); }}
控制器中实现namespace app\controllers;use yii\web\Controller;use vendor\event\Cat;use vendor\event\Mouse;use vendor\event\MyEvent;class TestController extends Controller{ public function actionTest(){ //实例化小猫 小鼠 $cat = new Cat(); $mourse = new Mouse(); //实例化事件对象 - 用以传递数据 $event = new MyEvent(); $event->message = 'i am data<br />'; //给小猫的miao事件绑定一个处理方法 $cat->on('miao', [$mourse, 'run'],$message);//这里可以是匿名函数或$message作为参数3 以事件属性方式调用 $cat->off('miao', [$mourse, 'run']);//解绑小鼠的run方法 //小猫触发事件 $cat->shout($event); return $this->renderPartial('test'); }}
运行结果
miao miao miaoI want to run awayi am dataabc
----------------------------------------------------------------------------------------------------------------------------------------------------------以上是单个实例的触发绑定怎样实现类级别的绑定功能呢? 使用\yii\base\Event::on(); 方法。用法如下
\yii\base\Event::on(Cat::className, '事件名', [处理类, 处理动作]);
这样所有Cat的实例都会触发到指定事件,
0 0
- Yii的事件机制
- YII框架的事件机制
- YII事件的级别
- yii中事件的了解
- Yii 事件
- YII事件
- yii的登录实现,自定义登录同步yii登录机制
- 清晰理解Yii的事件和行为
- Yii的类自动加载机制
- Yii的类自动加载机制
- C#的事件机制
- C#的事件机制
- C#的事件机制
- Remoting的事件机制
- C#的事件机制
- C#的事件机制
- dojo的事件机制
- QT的事件机制
- 前端表关联SQL拼接实现
- DTS Audio Codec 码率
- Linux centos安装git
- tiger 语法分析实现(无语义)
- IE9 cookie删除不了怎么办
- Yii的事件机制
- AutoMapper使用
- shell 重启tomcat 脚本
- CSS布局浮动和溢出控制及定位及显示类型
- 17年2月27日Java后台学习记录,SSM架构最终配置,Spring回滚机制。
- C++第一次上机训练项目三
- Wireshark实战分析值ICMP协议
- Java RMI简单使用案例
- 学会正则表达式让你的编程如虎添翼