bodaclick / async-event-dispatcher
用于异步分发事件的库
1.0.1
2014-02-07 14:01 UTC
Requires
- php: >=5.4.0
- jms/serializer-bundle: 0.13.*@dev
Requires (Dev)
- oldsound/rabbitmq-bundle: dev-master
This package is not auto-updated.
Last update: 2024-09-14 15:11:16 UTC
README
这个库旨在允许有多个“驱动程序”(即监听器),使用“发射并忘记”策略发布事件,主要在pub/sub软件中。
这种方法受到Symfony的EventDispatcher组件的启发。然而,AsyncDispatcher会将驱动程序注册到所有已注册的事件(通过添加驱动程序),如果未传递事件,则调用该驱动程序来处理所有事件。
安装
使用composer安装。将以下代码添加到您的当前composer.json文件中的require
键:"bodaclick/async-event-dispatcher":"1.0.x-dev"
使用方法
您必须将驱动程序添加到AsyncEventDispatcher
,这样当AsyncEventInterface
被触发时,它会收到通知。
添加驱动程序
use BDK\AsyncEventDispatcher\AsyncEventDispatcher; use BDK\AsyncEventDispatcher\AsyncDriver\RabbitMQDriver; $driver = new RabbitMQDriver(); $ed = new AsyncEventDispatcher(); //Single event. It also registers the event $ed->addDriver($driver, 'event.name'); //All events available $ed->addDriver($driver);
触发事件
use BDK\AsyncEventDispatcher\AsyncEventInterface; $event = new CustomEvent(); //implements AsyncEventInterface $ed->dispatch($event);
可用驱动程序
目前只有两个驱动程序可用
- RabbitMQ
- 文件
欢迎提交带有新驱动程序的PR!
扩展
创建新的驱动程序就像实现AsyncEventDriverInterface
一样简单