benit8/event-emitter

支持命名空间的 PHP 事件发射器

v1.2.0 2023-03-28 13:53 UTC

This package is auto-updated.

Last update: 2024-09-29 11:56:34 UTC


README

支持命名空间的事件发射器。

安装

$ composer require benit8/event-emitter

用法

您可以扩展 EventEmitter 类或使用 EventEmitterTrait。还有一个可用的接口 EventEmitterInterface

use Benit8\EventEmitter\EventEmitterTrait;

class MyReactor
{
	use EventEmitterTrait;
}

参考

添加监听器

$ev->on('user.created', function ($user) {
	// Fired every time a 'user.created' event is emitted
});

$ev->on('user', function ($user) {
	// Listening to all 'user.*' events
});

添加一次性监听器

$ev->once('user.created', function ($user) {
	// Will remove itself after firing
});

发射事件

$user = new User(/* ... */);

// Will trigger 'user.created' and 'user' listeners
$ev->emit('user.created', $user);

移除监听器

$ev->removeListener('user.created', $myCallable);

移除所有监听器

// All listeners
$ev->removeAllListeners();

// Subset listeners
$ev->removeAllListeners('user');