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']);
    }
posted @ 2018-07-05 14:31  蜗牛使劲冲  阅读(4)  评论(0编辑  收藏  举报  来源