Yii2 事件
参考:https://my.oschina.net/kenblog/blog/411074
第二个更好:https://blog.csdn.net/u012979009/article/details/51496165
事件主要用于“一系列”的动作操作,然后直接触发就行
先来个普通类:
<?php
namespace app\models;
use yii\base\Model;
// 所有的model也是,他们也是全部继承了component
class Person extends Model{
public function say_hello($parm){
echo "你应该会看到:".$parm->data.'<br>';
}
public function say_goodbye($parm){
echo "你应该会看到:".$parm->data.'<br>';
}
}
接下来是关键部分
// 在app\controllers\siteController下,所有的控制器都继承了component
public function actionEvent(){
$person = new Person();
$this->on('SayHello', [$person,'say_hello'],'你好,朋友');// 对象的方法
$this->on('SayHello', ['app\models\Person','say_goodbye'],'再见了,我的朋友');
$this->on('SayHello', function(){ // 匿名函数输出
echo '晚安!';
});
$this->trigger('SayHello');// 触发事件
// 通过 off 解除绑定
$person->off('SayHello', [$person, 'say_hello']);
}