YII2.0 中对事件与行为的理解

Yii框架2.0 administrator 901℃

为什么要使用事件??

可以参考:https://www.cnblogs.com/mafeifan/p/4322327.html

1、观察者模式

我们先预想一下我们的事件,假设我们定义了很多观察者代码,他们监听事件的发生,当一个事件被触发,这些观察者都会知道,执行各自的逻辑。

事件就是观察者模式的一种应用。

监听系统的某一个行为,实时获取并执行自己负责的代码。

2、YII2的核心就是依赖注入和事件处理

YII事件的使用:

事件一共分为三个过程

1、定义事件

2、触发事件

3、处理事件

1)、第一步:定义自己的事件
const EVENT_BEFORE_MARK_QUERY = 'beforeMarkDelete';
const EVENT_AFTER_MARK_QUERY = 'afterMarkDelete';

2)第二步完成绑定事件
$this->on(self::EVENT_BEFORE_MARK_QUERY, [$this, 'onBeforeMarkQuery']);

3)第三步定义Event Handler (事件处理器)
public function onBeforeMarkQuery () {
echo "我在查询之前进行了拦截"."<br>";
//exit;
}

4)、触发事件
$this->trigger(self::EVENT_BEFORE_MARK_QUERY);

3、常见的YII事件(三十四个)

Model 层   beforeSave  afterSave   beforeDelete   afterDelete

Controller层   beforeAction   afterAction

可以用PHPStorm 工具搜索  const EVENT 这个词来查找。

4、Yii2事件与行为总结

1)、事件用于在特定的时点,触发执行预先设定的一段代码,需要使用到事件的类,都继承自 yii\base\Component。

2)、行为用于对类的补充,通过将行为绑定到一个类,可以使类具有行为本身所定义的属性和方法,就好像类本来就有这些属性和方法一样。

而且不需要写一个新的类去继承或包含现有类。

可以参考:https://blog.csdn.net/zhangchen56342/article/details/78222499

转载请注明:LuckRay » YII2.0 中对事件与行为的理解

喜欢 (0)