astina/domain-events-bundle

This package is abandoned and no longer maintained. No replacement package was suggested.
There is no license information available for the latest version (0.1.1) of this package.

Configure services as Doctrine domain event listeners.

Installs: 141

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 20

Forks: 0

Type:symfony-bundle

0.1.1 2013-04-27 09:45 UTC

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.