solilokiam / async-event-dispatcher
symfony 的异步事件调度器
dev-master
2014-11-16 17:58 UTC
Requires
- predis/predis: 1.0.*
- symfony/serializer: 2.5.6
- videlalvaro/php-amqplib: 2.2.*
Requires (Dev)
- fabpot/php-cs-fixer: @stable
- mockery/mockery: dev-master
- phpmd/phpmd: dev-master
- phpunit/phpunit: 4.2.*
- squizlabs/php_codesniffer: dev-master
This package is not auto-updated.
Last update: 2024-09-24 03:24:54 UTC
README
此组件是一个基于 symfony 事件调度器组件的异步事件调度器,但采用“触发即忘记”的方式。目前它需要 Redis 来运行,但如果你使用其他队列系统,扩展和使用它非常简单。
警告
此代码尚未准备好用于生产。这仍然是一个正在进行中的项目,随着时间的推移,事情可能会发生很大变化。
安装
使用 composer
将以下行添加到你的 composer.json
文件中
"require": { ... "solilokiam/async-event-dispatcher": "dev-master" },
如何调度事件?
如果你已经使用了 symfony 事件调度器,使用它非常简单。首先,你需要创建自己的事件。此事件必须扩展 AsyncEvent
。一旦你创建了事件,你需要使用 AsyncEventDispatcher
来调度它。当你实例化 AsyncEventDispatcher
类时,你需要注入一个实现 EventDriverInterface
的对象。此组件为你提供了一个 RabbitMq 接口的实现。如果你需要,你也可以创建自己的。
在下面的示例中,你可以看到如何做到这一点
namespace Foo\Events; use Solilokiam\AsyncEventDispatcher\AsyncEvent; class FooAsyncEvent extends AsyncEvent { protected $foo; public function setFoo($value) { $this->foo = $value; return $this; } public function getFoo() { return $this->foo; } }
$redirEventDriver = new RedisDriver($redisConfig); $asyncEventDispatcher = new AsyncEventDispatcher($redisEventDriver); $fooEvent = new FooAsyncEvent(); $fooEvent->setFoo('whatever'); $dispatcher->dispatch('foo.event', $fooEvent);
如何定义事件监听器?
待办事项
如何消费调度器事件?
待办事项
许可证
AsyncEventDispatcher 根据 MIT 许可证授权。有关详细信息,请参阅 LICENSE 文件。