Website ๐ contributte.org | Contact ๐จ๐ปโ๐ป f3l1x.io | Twitter ๐ฆ @contributte
This project is no longer being maintained. Please use contributte/event-dispatcher. |
---|
Composer | contributte/dummy-events |
---|---|
Version | |
PHP | |
License |
Register in your config file (e.q. config.neon).
extensions:
events: Contributte\DummyEvents\DI\EventsExtension
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..
});
}
}
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..
});
}
}
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);
}
This package was maintain by these authors.
Consider to support contributte development team. Also thank you for being used this package.