astina / domain-events-bundle
Configure services as Doctrine domain event listeners.
Installs: 141
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 20
Forks: 0
Type:symfony-bundle
Requires
- doctrine/doctrine-bundle: dev-entity_listener_resolver
This package is not auto-updated.
Last update: 2022-07-18 19:42:54 UTC
README
Configure services as Doctrine domain event listeners.
Note: this bundle is not production ready as it requires the master version of DoctrineBundle.
Installation
Step 1: Add to composer.json
"require": { "astina/domain-events-bundle":"dev-master", }
Step 2: Enable the bundle
Enable the bundle in the kernel:
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new Astina\Bundle\DomainEventsBundle\AstinaDomainEventsBundle(), ); }
##Usage
Create subscriber service:
class ProductSupplyWatcher { public function preUpdate(ProductSupply $supply, PreUpdateEventArgs $event) { // do stuff } }
Read more about the (optional) $event parameter in the Doctrine documentation about Entity Listeners.
<service id="product_supply_watcher" class="Astina\Bundle\SandboxBundle\Foo\ProductSupplyWatcher"> <argument type="service" id="some_service" /> </service>
Configure domain event subscriber:
astina_domain_events: subscribers: product_supply_watcher: # this is the service id entity: Astina\Bundle\ShopBundle\Model\ProductSupply # entity class events: [ preUpdate ] # list of events to listen to
Note that the method name in the subscriber service corresponds with the event name.
Available events:
- prePersist
- postPersist
- preUpdate
- postUpdate
- preRemove
- postRemove
- preFlush
- postLoad
##Todo Add possibility to subscribe to changes on specific fields.