<?php
namespace AppBundle\Doctrine;
use Doctrine\ORM\Mapping\DefaultEntityListenerResolver;
use Symfony\Component\DependencyInjection\ContainerInterface;
class EntityListenerResolver extends DefaultEntityListenerResolver
{
const DIC_ID = 'app.doctrine.entity_listener_resolver';
private $container;
private $mapping;
public function __construct(ContainerInterface $container)
{
$this->container = $container;
$this->mapping = [];
}
public function addMapping($className, $service)
{
$this->mapping[$className] = $service;
}
public function resolve($className)
{
if (isset($this->mapping[$className]) && $this->container->has($this->mapping[$className])) {
return $this->container->get($this->mapping[$className]);
}
return parent::resolve($className);
}
}