minetro / events
2.0.0
2018-06-25 21:59 UTC
Requires
- php: >=7.1
- nette/di: ~2.4.12
Requires (Dev)
- nette/bootstrap: ~2.4.6
- ninjify/nunjuck: ^0.2.0
- ninjify/qa: ^0.8.0
This package is auto-updated.
Last update: 2021-06-28 10:57:09 UTC
README
网站 🚀 contributte.org | 联系 👨🏻💻 f3l1x.io | Twitter 🐦 @contributte
免责声明
Composer | contributte/dummy-events |
---|---|
版本 | |
PHP | |
许可证 |
文档
使用方法
注册扩展
在您的配置文件中注册(例如 config.neon)。
extensions: events: Contributte\DummyEvents\DI\EventsExtension
注册事件
在容器编译时 - EventsExtension 收集实现 EventsSubscriber 的所有服务并调用它们的 onEvents($em)
方法。
use Contributte\DummyEvents\EventsSubscriber; use Contributte\DummyEvents\EventsManager; class TestService implements EventsSubscriber { /** * @param EventsManager $em */ public function onEvents(EventsManager $em) { $em->on('order.update', function($state) { // Some logic.. }); } }
注册延迟事件
使用前缀 event 将名称标签作为事件名称。
services: {class: TestService, tags: [event.order.update]}
或者使用具有 events 键名的标签数组。
services: {class: TestService, tags: [events: [order.update]]}
这防止了使用其他标签。
如果 EventsSubscriber 注册了更多事件并且也被延迟注册(通过neon中的标签),则实现的 onEvents(EventsManager $em)
方法仅被调用 一次。
use Contributte\DummyEvents\EventsSubscriber; use Contributte\DummyEvents\EventsManager; class TestSubscriber implements EventsSubscriber { public function onEvents(EventsManager $em) { $em->on('order.create', function($state) { // Some logic.. }); $em->on('order.update', function($state) { // Some logic.. }); $em->on('order.delete', function($state) { // Some logic.. }); } }
触发事件
将 EventsManager 注入到您的类中。
use Contributte\DummyEvents\EventsManager; /** @var EventsManager @inject **/ public $em; public function save() { // Some logic.. // Fire order update events $this->em->trigger('order.update', $order->state); }
开发
此软件包由以下作者维护。
请考虑支持 contributte 开发团队。同时感谢您使用此软件包。