benit8 / event-emitter
支持命名空间的 PHP 事件发射器
v1.2.0
2023-03-28 13:53 UTC
Requires
- php: >=7.4
Requires (Dev)
- php-parallel-lint/php-parallel-lint: ^1.3
- phpstan/phpstan: ^1.10
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');