注意:php
事件返回值,都是
Array
类型。thinkphp
sequenceDiagram participant a as 控制器 participant b as 事件(定义方法) participant c as 监听(执行事件方法) b-->>a:注册/动态绑定 c-->>a:设置事件的监听 a->>b:触发事件 a-->>c:传入参数 c-->>b:执行事件方法 b->>a:返回值
定义须要触发的代码与方法。app
设置监听类code
// 动态绑定事件 Event::bind(['UserRegisterEventName' => 'app\event\UserRegister']); // 设置监听类 Event::listen('UserRegisterEventName', 'app\listener\UserRegister'); // 触发事件 $r = Event::trigger('UserRegister',$phone); return $r;
直接调用方法对象
// 申明事件 use app\event\Sms; // 事件注册 Event::bind(['sms' => 'app\event\Sms']); // 直接设置监听 Event::listen('sms', function (Sms $Sms,$opt){ $rs = $Sms->send($opt['phone'],$opt['code']); if ($rs != 'OK'){ return false; }else{ return true; } }); // 触发事件 $r = Event::trigger('sms',array('phone'=>$phone,'code'=>$code)); return $r;
返回值,都是
Array
类型事件