diff --git a/DependencyInjection/DoctrineExtension.php b/DependencyInjection/DoctrineExtension.php index bdb4b3e60..707495a1c 100644 --- a/DependencyInjection/DoctrineExtension.php +++ b/DependencyInjection/DoctrineExtension.php @@ -6,6 +6,7 @@ use Doctrine\Bundle\DoctrineBundle\DependencyInjection\Compiler\ServiceRepositoryCompilerPass; use Doctrine\Bundle\DoctrineBundle\EventSubscriber\EventSubscriberInterface; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepositoryInterface; +use Doctrine\ORM\Proxy\Autoloader; use Doctrine\ORM\UnitOfWork; use LogicException; use Symfony\Bridge\Doctrine\DependencyInjection\AbstractDoctrineExtension; @@ -363,7 +364,7 @@ protected function ormLoad(array $config, ContainerBuilder $container) $container->setParameter('doctrine.orm.' . $key, $config[$key]); } - $container->setAlias('doctrine.orm.entity_manager', sprintf('doctrine.orm.%s_entity_manager', $config['default_entity_manager'])); + $container->setAlias('doctrine.orm.entity_manager', $defaultEntityManagerDefinitionId = sprintf('doctrine.orm.%s_entity_manager', $config['default_entity_manager'])); $container->getAlias('doctrine.orm.entity_manager')->setPublic(true); $config['entity_managers'] = $this->fixManagersAutoMappings($config['entity_managers'], $container->getParameter('kernel.bundles')); @@ -397,6 +398,14 @@ protected function ormLoad(array $config, ContainerBuilder $container) $container->registerForAutoconfiguration(EventSubscriberInterface::class) ->addTag('doctrine.event_subscriber'); + + /** + * @see DoctrineBundle::boot() + */ + $container->getDefinition($defaultEntityManagerDefinitionId) + ->addTag('container.preload', [ + 'class' => Autoloader::class, + ]); } /** diff --git a/Tests/DependencyInjection/Fixtures/config/yml/orm_service_single_entity_manager.yml b/Tests/DependencyInjection/Fixtures/config/yml/orm_service_single_entity_manager.yml index e3cb77a19..e565fabdb 100644 --- a/Tests/DependencyInjection/Fixtures/config/yml/orm_service_single_entity_manager.yml +++ b/Tests/DependencyInjection/Fixtures/config/yml/orm_service_single_entity_manager.yml @@ -10,7 +10,7 @@ doctrine: memory: true orm: - default_entity_manager: dm2 + default_entity_manager: default proxy_namespace: Proxies auto_generate_proxy_classes: true entity_managers: