Class yii\base\Event

本文介绍了Yii框架中事件系统的实现原理及使用方法。包括事件类的基本属性如$data、$handled等,以及关键方法如on()、off()等的使用方式。通过本文,读者可以了解如何在Yii应用中有效地使用事件。

所有类 | 属性 | 方法

继承yii\base\Event » yii\base\Object
可用自版本2.0

事件是所有事件类的基类.

它封装了参数与事件相关联。$sender 的发送方属性描述谁提高了事件。和$handledproperty表示如果事件处理。如果一个事件处理程序集处理$handled是 true,,其余的uninvoked处理程序将不再被称为处理事件。

此外,附加事件处理程序时,额外的数据可能被传递,并通过$data 是可用的属性调用事件处理程序时

有关事件的更多细节和使用信息,请参阅指南文章事件。

公共属性

隐藏继承属性

属性类型描述定义在
$datamixed

的数据传递给yii\base\Component::on()添加一个事件处理程序。

yii\base\Event
$handledboolean是否处理事件。yii\base\Event
$namestring事件的名称。yii\base\Event
$senderobject这个事件的发送者。yii\base\Event

公共方法

隐藏继承方法

方法描述定义在
hasHandlers()返回一个值指示是否有处理程序连接到指定的类级别的事件。yii\base\Event
off()分离一个事件处理程序从一个类级别的事件。yii\base\Event
offAll()分离所有注册类级别事件处理程序。yii\base\Event
on()附加一个事件处理程序来一个类级别的事件。yii\base\Event
trigger()触发一个类级别的事件yii\base\Event

属性详情

$data public property

的数据传递给yii\base\Component::on() 添加一个事件处理程序。注意,这个变化根据当前执行事件处理程序。

public mixed $data = null

$handled public property

是否处理事件。默认值为false.。当处理程序集这是 true,,事件处理将停止而忽略其余的uninvoked事件处理程序

public boolean $handled = false

$name public property

事件的名称。设置此属性,yii\base\Component::trigger()和 trigger()。事件处理程序可以使用这个属性来检查它是什么事件处理。

public string $name = null

$sender public property

这个事件的发送者。如果没有设置,该属性将被设定为 trigger()方法的对象。这个属性也可能是一个null的时候触发这个事件是一个类级别的事件在一个静态上下文。

public object $sender = null

方法详情

hasHandlers() public static 方法

返回一个值指示是否有处理程序连接到指定的类级别的事件。

注意,这个方法也会检查所有父类是否有任何处理程序连接到指定的事件。

public static boolean hasHandlers ( $class, $name )
$classstring|object

完全限定类名指定的对象或类级别的事件.

$namestring

事件的名称。

returnboolean

是否有处理程序附加到事件。

off() public static 方法

分离一个事件处理程序从一个类级别的事件。

这个方法是相反的on().

参见 on().

public static boolean off ( $class, $name, $handler = null )
$classstring

事件处理程序的完全限定类名需要分离。

$namestring

事件的名称。

$handlercallable

事件处理程序被删除。如果它为null,,所有连接到指定的事件处理程序将被删除。

returnboolean

一个处理程序是否发现并分离

offAll() public static 方法 (可用自版本 2.0.10)

分离所有注册类级别事件处理程序.

参见:

public static void offAll ( )

on() public static 方法

附加一个事件处理程序来一个类级别的事件。

当一个类级别事件触发、事件处理程序附加到类和所有将调用父类.

例如,下面的代码一个事件处理程序附加到ActiveRecordafterInsert事件

Event::on(ActiveRecord::className(), ActiveRecord::EVENT_AFTER_INSERT, function ($event) {
    Yii::trace(get_class($event->sender) . ' is inserted.');
});

每个成功的处理程序将被调用ActiveRecord插入。

如何声明一个事件处理程序的详细信息,请参阅 yii\base\Component::on().

参见 off().

public static void on ( $class, $name, $handler, $data = null, $append = true )
$classstring

的完全限定类名需要附加事件处理程序。

$namestring

事件的名称。

$handlercallable

事件处理程序。

$datamixed

数据被传递到事件处理程序当事件被触发。当事件处理程序被调用时,该数据可以通过访问yii\base\Event::$data.

$appendboolean

是否新的事件处理程序附加到现有的处理程序列表。如果错误,新的处理程序将插入到现有的处理程序列表的开始。

trigger() public static 方法

触发一个类级别的事件。

这个方法将导致调用事件处理程序附加到命名的事件为指定的类及其所有父类。

public static void trigger ( $class, $name, $event = null )
$classstring|object

完全限定类名指定的对象或类级别的事件.

$namestring

事件的名称

$eventyii\base\Event

事件参数。如果没有设置,默认yii\base\Event对象将被创建

转载于:https://my.oschina.net/u/2552765/blog/853287

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值