注意: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
類型事件