minetro / events
Simple events for Nette
Fund package maintenance!
f3l1x
contributte.org/partners.html
Installs: 11 579
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 9
Forks: 3
Open Issues: 0
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
Website 🚀 contributte.org | Contact 👨🏻💻 f3l1x.io | Twitter 🐦 @contributte
Disclaimer
Composer | contributte/dummy-events |
---|---|
Version | |
PHP | |
License |
Documentation
Usage
Register extension
Register in your config file (e.q. config.neon).
extensions: events: Contributte\DummyEvents\DI\EventsExtension
Register events
On Container compile - EventsExtension collect all services which implement EventsSubscriber and call their onEvents($em)
method.
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.. }); } }
Register lazy events
Name tag as event name with prefix event.
services: {class: TestService, tags: [event.order.update]}
Or use tag arrays with key name events.
services: {class: TestService, tags: [events: [order.update]]}
This prevents usage of other tags.
If EventsSubscriber register more events and also is lazy registered (by tags in neon). Implemented method
onEvents(EventsManager $em)
is called only once.
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.. }); } }
Fire events
Inject to your class ultra-simple 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); }
Development
This package was maintain by these authors.
Consider to support contributte development team. Also thank you for being used this package.