i have this subscriber located in AppBundle\DoctrineListeners
body of it is this
namespace AppBundle\DoctrineListeners;
use Doctrine\Common\EventSubscriber;
use Doctrine\ORM\Event\OnFlushEventArgs;
use AppBundle\Entity\Bing\KeyWordReport;
use Doctrine\ORM\Events;
/**
* Listener used to on update fielt create history
*/
class KeywordSubscriber implements EventSubscriber
{
public function onFlush(OnFlushEventArgs $args)
{
throw new \Exception("Error Processing Request", 1); //for testing
$em = $args->getEntityManager();
$uow = $em->getUnitOfWork();
foreach ($uow->getScheduledEntityUpdates() as $updated) {
if ($updated instanceof KeyWordReport) {
//do some work
}
}
$uow->computeChangeSets();
}
public function getSubscribedEvents()
{
return [Events::onFlush => ['onFlush', 10], Events::preUpdate];
}
}
i'm using autoconfigure introduced in symfony 3.3
service.yml
services:
# default configuration for services in *this* file
_defaults:
# automatically injects dependencies in your services
autowire: true
# automatically registers your services as commands, event subscribers, etc.
autoconfigure: true
# this means you cannot fetch services directly from the container via $container->get()
# if you need to do this, you can override this setting on individual services
public: false
in Entity i have in annotation this * @ORM\EntityListeners({"AppBundle\DoctrineListeners\KeywordSubscriber"})
why it is not executed?