瀏覽代碼

[DoctrineBundle] moved some more definition to abstract definition

Fabien Potencier 14 年之前
父節點
當前提交
aab56fa91e

+ 2 - 8
src/Symfony/Bundle/DoctrineBundle/DependencyInjection/DoctrineExtension.php

@@ -142,7 +142,7 @@ class DoctrineExtension extends AbstractDoctrineExtension
         $loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
         $loader->load('orm.xml');
 
-        $entityManagers = array_keys($config['entity_managers']);
+        $container->setParameter('doctrine.orm.entity_managers', $entityManagers = array_keys($config['entity_managers']));
 
         if (empty ($config['default_entity_manager'])) {
             $config['default_entity_manager'] = reset($entityManagers);
@@ -159,8 +159,6 @@ class DoctrineExtension extends AbstractDoctrineExtension
             $entityManager['name'] = $name;
             $this->loadOrmEntityManager($entityManager, $container);
         }
-
-        $container->setParameter('doctrine.orm.entity_managers', $entityManagers);
     }
 
     /**
@@ -171,11 +169,7 @@ class DoctrineExtension extends AbstractDoctrineExtension
      */
     protected function loadOrmEntityManager(array $entityManager, ContainerBuilder $container)
     {
-        $configServiceName = sprintf('doctrine.orm.%s_configuration', $entityManager['name']);
-
-        $ormConfigDef = new Definition('%doctrine.orm.configuration.class%');
-        $ormConfigDef->setPublic(false);
-        $container->setDefinition($configServiceName, $ormConfigDef);
+        $ormConfigDef = $container->setDefinition(sprintf('doctrine.orm.%s_configuration', $entityManager['name']), new DefinitionDecorator('doctrine.orm.configuration'));
 
         $this->loadOrmEntityManagerMappingInformation($entityManager, $ormConfigDef, $container);
         $this->loadOrmCacheDrivers($entityManager, $container);

+ 2 - 0
src/Symfony/Bundle/DoctrineBundle/Resources/config/orm.xml

@@ -58,5 +58,7 @@
             <tag name="form.type" alias="entity" />
             <argument type="service" id="doctrine.orm.entity_manager" />
         </service>
+
+        <service id="doctrine.orm.configuration" class="%doctrine.orm.configuration.class%" public="false" abstract="true" />
     </services>
 </container>