How to use Entity Entity receiver with Symfony 2.4?

I want to use the Doctrine Entity Listener with Symfony 2.4.

I created a class:

<?php namespace MyBundle\Listener\Entity; use Doctrine\ORM\Event\LifecycleEventArgs; use MyBundle\Entity\User; class UserListener { public function postPersist(User $user, LifecycleEventArgs $event) { } } 

I added mapping information:

 <?xml version="1.0" encoding="UTF-8" ?> <doctrine-mapping> <entity name="MyBundle\Entity\User"> ... <entity-listeners> <entity-listener class="MyBundle\Listener\Entity\UserListener" /> </entity-listeners> </entity> </doctrine-mapping> 

Works fine. But how can I transfer some services to this class? I want it to be integrated with the Symfony service container and provide services.

+4
symfony doctrine
source share
1 answer

To register a specific listener instance with symfony, follow these steps:

1) Update the DoctrineBundle in your composer.json to version 1.3 (since it is not stable yet):

 { "require": { "doctrine/doctrine-bundle": "1.3.x-dev", } } 

2) Register your own service with the tag name "doctrine.orm.entity_listener":

 my.listener: class: MyBundle\Listener\Entity\UserListener arguments: [ ... ] tags: - { name: doctrine.orm.entity_listener } 

See Symfony Docs for Entity Listeners .

+6
source share

All Articles