Search code examples
phpsymfonydoctrine-ormsymfony-cmfdoctrine-phpcr

Doctrine-PHPCR-ODM Event doesn't fire


I have a doctrine-phpcr-odm document named article,I want to slugify a field before updating each article.
The event fires for doctrine-orm entities but dosn't fire for doctrine-phpcr-odm documents!

class ArticlePreUpdateListener
{
    public function preUpdate(LifecycleEventArgs $args)
    {
        var_dump($args);
    }
}

article.pre_update.listener:
    class: AppBundle\EventListener\ArticlePreUpdateListener
    tags:
        - { name: doctrine.event_listener, event: preUpdate}

Solution

  • According to Docs, Doctrine-PHPCR-ODM events works the same way as for Doctrine ORM events. The only differences are:

    • use the tag name doctrine_phpcr.event_listener resp. doctrine_phpcr.event_subscriber instead of doctrine.event_listener;
    • expect the argument to be of class Doctrine\Common\Persistence\Event\LifecycleEventArgs.