krak / event-emitter
事件发射器
v0.1.0
2017-03-19 04:32 UTC
Requires
- krak/invoke: ^0.1.0
Requires (Dev)
- peridot-php/peridot: ^1.19
This package is auto-updated.
Last update: 2024-09-18 17:42:53 UTC
README
一个具有很多灵活性的简单事件发射器包。受Evenement库的启发,EventEmitter提供了一个简单的接口来添加和发射事件。
安装
使用composer安装 krak/event-emitter
使用方法
<?php $emitter = Krak\EventEmitter\emitter(); // creates the default emitter instance $emitter->on('event', function($arg) { echo "Hello $arg\n"; }); $emitter->emit('event', "World");
这是事件发射器接口
<?php interface EventEmitter { public function on($event, $listener); public function once($event, $listener); public function removeListener($event, $listener); public function removeAllListeners($event = null); public function listeners($event); public function emit($event, ...$arguments); }
事件监听器
您可以通过实现 EventListener
接口来添加事件监听器类。
<?php use Krak\EventEmitter\EventListener; class AcmeListener implements EventListener { public function handle($param) { } }
然后,您可以通过以下方式将其添加到发射器中:
<?php $emitter->on('event', new AcmeListener());
自定义调用
默认发射器通过Krak\Invoke库支持自定义调用。您可以轻松传递一个自定义调用者,它提供了一种灵活性,即如何调用您的监听器。
<?php use Krak\EventEmitter; // this creates an emitter that will support container services as listeners $invoke = new Krak\Invoke\ContainerInvoke(EventEmitter\emitterInvoke(), $container); $emitter = Krak\EventEmitter\emitter($invoke); $emitter->on('event', 'service_id'); $emitter->emit('event', 1);