knplabs/rad-domain-event
Provide RAD Domain Event component
Maintainers
Requires
- php: ~7.0
- doctrine/orm: ^2.5
- symfony/config: ^2.6 || ~3.0 || ~4.0
- symfony/dependency-injection: ^2.6 || ~3.0 || ~4.0
- symfony/http-kernel: ^2.6 || ~3.0 || ~4.0
Requires (Dev)
- phpspec/phpspec: ^2.4
Suggests
None
Provides
None
Conflicts
None
Replaces
None
MIT c7b4d9e1b108b75bc1a53d84565af447fd213707
- KNP Labs <hello.woop@knplabs.com>
This package is auto-updated.
Last update: 2022-09-23 13:37:14 UTC
README
Unfortunately we decided to not maintain this project anymore (see why). If you want to mark another package as a replacement for this one please send an email to hello@knplabs.com.
Knp Rad Domain Event
👁 Build Status
👁 Scrutinizer Code Quality
👁 Latest Stable Version
👁 Total Downloads
👁 Latest Unstable Version
👁 License
A lightweight domain event pattern implementation for Doctrine2.
Official maintainers:
Installation
With composer :
$ composer require knplabs/rad-domain-event
If you are using Symfony you can update your app/AppKernel.php file:
public function registerBundles() { $bundles = array( // bundles here ... new Knp\Rad\DomainEvent\Bundle\DomainEventBundle(); ); }
Usage
Setup your entity
First, make sure your entity implements the Provider interface and uses the ProviderTrait.
use Knp\Rad\DomainEvent; class MyEntity implements DomainEvent\Provider { use DomainEvent\ProviderTrait; }
Raise event
Trigger any event from your entity, through the raise method.
It will be turned into a Knp\Rad\DomainEvent\Event object and dispatched once your entity has been flushed.
use Knp\Rad\DomainEvent; class MyEntity implements DomainEvent\Provider { // ... public function myFunction($arg) { // your function behavior $this->raise('myEventName', ['anyKey' => $anyValue]); } }
Listen to this event
use Knp\Rad\DomainEvent\Event; class MyListener { public function onMyEventName(Event $event) { // your function behavior } }
Then, of course, register your listener.
app.event_listener.my_event_listener: class: App\EventListener\MyEventListener tags: - { name: kernel.event_listener, event: myEventName, method: 'onMyEventName' }
