, (*1)
, (*2)
Website 🚀 contributte.org | Contact 👨🏻💻 f3l1x.io | Twitter 🐦 @contributte
, (*3)
Disclaimer
Documentation
Usage
Register extension
Register in your config file (e.q. config.neon)., (*4)
extensions:
events: Contributte\DummyEvents\DI\EventsExtension
Register events
On Container compile - EventsExtension collect all services which implement EventsSubscriber and call their onEvents($em)
method., (*5)
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., (*6)
services:
{class: TestService, tags: [event.order.update]}
Or use tag arrays with key name events., (*7)
services:
{class: TestService, tags: [events: [order.update]]}
This prevents usage of other tags., (*8)
If EventsSubscriber register more events and also is lazy registered (by tags in neon). Implemented method
onEvents(EventsManager $em)
is called only once., (*9)
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., (*10)
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., (*11)
, (*12)
Consider to support contributte development team.
Also thank you for being used this package., (*13)