diff --git a/UPDATE.md b/UPDATE.md index d2181ef418..35992ba7a1 100644 --- a/UPDATE.md +++ b/UPDATE.md @@ -6,6 +6,14 @@ one. It only discusses changes that need to be done when using the "public" API of the framework. If you "hack" the core, you should probably follow the timeline closely anyway. +beta1 to beta2 +-------------- + +* The `doctrine.orm.entity_managers` is now hash of entity manager names/ids pairs: + + Before: array('default', 'foo') + After: array('default' => 'doctrine.orm.default_entity_manager', 'foo' => 'doctrine.orm.foo_entity_manager')) + PR12 to beta1 ------------- diff --git a/src/Symfony/Bundle/DoctrineBundle/CacheWarmer/ProxyCacheWarmer.php b/src/Symfony/Bundle/DoctrineBundle/CacheWarmer/ProxyCacheWarmer.php index 8abc28d493..2a3b43f563 100644 --- a/src/Symfony/Bundle/DoctrineBundle/CacheWarmer/ProxyCacheWarmer.php +++ b/src/Symfony/Bundle/DoctrineBundle/CacheWarmer/ProxyCacheWarmer.php @@ -64,10 +64,8 @@ class ProxyCacheWarmer implements CacheWarmerInterface return; } - $entityManagers = $this->container->getParameter('doctrine.orm.entity_managers'); - foreach ($entityManagers as $entityManagerName) { - $em = $this->container->get(sprintf('doctrine.orm.%s_entity_manager', $entityManagerName)); - /* @var $em Doctrine\ORM\EntityManager */ + foreach ($this->container->getParameter('doctrine.orm.entity_managers') as $id) { + $em = $this->container->get($id); $classes = $em->getMetadataFactory()->getAllMetadata(); $em->getProxyFactory()->generateProxyClasses($classes); } diff --git a/src/Symfony/Bundle/DoctrineBundle/Command/DoctrineCommand.php b/src/Symfony/Bundle/DoctrineBundle/Command/DoctrineCommand.php index 64349bab98..aad317a356 100644 --- a/src/Symfony/Bundle/DoctrineBundle/Command/DoctrineCommand.php +++ b/src/Symfony/Bundle/DoctrineBundle/Command/DoctrineCommand.php @@ -111,12 +111,11 @@ abstract class DoctrineCommand extends Command protected function getDoctrineEntityManagers() { - $entityManagerNames = $this->container->getParameter('doctrine.orm.entity_managers'); $entityManagers = array(); - foreach ($entityManagerNames as $entityManagerName) { - $em = $this->container->get(sprintf('doctrine.orm.%s_entity_manager', $entityManagerName)); - $entityManagers[] = $em; + foreach ($this->container->getParameter('doctrine.orm.entity_managers') as $id) { + $entityManagers[] = $this->container->get($id); } + return $entityManagers; } diff --git a/src/Symfony/Bundle/DoctrineBundle/DependencyInjection/DoctrineExtension.php b/src/Symfony/Bundle/DoctrineBundle/DependencyInjection/DoctrineExtension.php index f7282ec324..b6c71a077c 100755 --- a/src/Symfony/Bundle/DoctrineBundle/DependencyInjection/DoctrineExtension.php +++ b/src/Symfony/Bundle/DoctrineBundle/DependencyInjection/DoctrineExtension.php @@ -142,10 +142,15 @@ class DoctrineExtension extends AbstractDoctrineExtension $loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); $loader->load('orm.xml'); - $container->setParameter('doctrine.orm.entity_managers', $entityManagers = array_keys($config['entity_managers'])); + $entityManagers = array(); + foreach (array_keys($config['entity_managers']) as $name) { + $entityManagers[$name] = sprintf('doctrine.orm.%s_entity_manager', $name); + } + $container->setParameter('doctrine.orm.entity_managers', $entityManagers); if (empty($config['default_entity_manager'])) { - $config['default_entity_manager'] = reset($entityManagers); + $tmp = array_keys($entityManagers); + $config['default_entity_manager'] = reset($tmp); } $options = array('default_entity_manager', 'auto_generate_proxy_classes', 'proxy_dir', 'proxy_namespace'); diff --git a/src/Symfony/Bundle/DoctrineBundle/Resources/config/orm.xml b/src/Symfony/Bundle/DoctrineBundle/Resources/config/orm.xml index 95679c1fe8..544c7a9c42 100644 --- a/src/Symfony/Bundle/DoctrineBundle/Resources/config/orm.xml +++ b/src/Symfony/Bundle/DoctrineBundle/Resources/config/orm.xml @@ -7,7 +7,6 @@ Doctrine\ORM\Configuration Doctrine\ORM\EntityManager - Doctrine\Common\Cache\ArrayCache diff --git a/src/Symfony/Bundle/DoctrineBundle/Tests/CacheWarmer/ProxyCacheWarmerTest.php b/src/Symfony/Bundle/DoctrineBundle/Tests/CacheWarmer/ProxyCacheWarmerTest.php index be66d759dc..fe8bd6a2fd 100644 --- a/src/Symfony/Bundle/DoctrineBundle/Tests/CacheWarmer/ProxyCacheWarmerTest.php +++ b/src/Symfony/Bundle/DoctrineBundle/Tests/CacheWarmer/ProxyCacheWarmerTest.php @@ -41,7 +41,7 @@ class ProxyCacheWarmerTest extends \Symfony\Bundle\DoctrineBundle\Tests\TestCase $container->expects($this->at(2)) ->method('getParameter') ->with($this->equalTo('doctrine.orm.entity_managers')) - ->will($this->returnValue(array('default', 'foo'))); + ->will($this->returnValue(array('default' => 'doctrine.orm.default_entity_manager', 'foo' => 'doctrine.orm.foo_entity_manager'))); $container->expects($this->at(3)) ->method('get') ->with($this->equalTo('doctrine.orm.default_entity_manager')) diff --git a/src/Symfony/Bundle/DoctrineBundle/Tests/DependencyInjection/AbstractDoctrineExtensionTest.php b/src/Symfony/Bundle/DoctrineBundle/Tests/DependencyInjection/AbstractDoctrineExtensionTest.php index e5b2e69f00..11a9562eca 100755 --- a/src/Symfony/Bundle/DoctrineBundle/Tests/DependencyInjection/AbstractDoctrineExtensionTest.php +++ b/src/Symfony/Bundle/DoctrineBundle/Tests/DependencyInjection/AbstractDoctrineExtensionTest.php @@ -154,7 +154,7 @@ abstract class AbstractDoctrineExtensionTest extends TestCase $this->assertEquals('create', $definition->getFactoryMethod()); $this->assertArrayHasKey('doctrine.orm.entity_manager', $definition->getTags()); - $this->assertEquals(array("default"), $container->getParameter('doctrine.orm.entity_managers'), "Set of the existing EntityManagers names is incorrect."); + $this->assertEquals(array('default' => 'doctrine.orm.default_entity_manager'), $container->getParameter('doctrine.orm.entity_managers'), "Set of the existing EntityManagers names is incorrect."); $arguments = $definition->getArguments(); $this->assertInstanceOf('Symfony\Component\DependencyInjection\Reference', $arguments[0]); @@ -567,7 +567,7 @@ abstract class AbstractDoctrineExtensionTest extends TestCase $this->compileContainer($container); - $this->assertEquals(array("em1", "em2"), $container->getParameter('doctrine.orm.entity_managers'), "Set of the existing EntityManagers names is incorrect."); + $this->assertEquals(array('em1' => 'doctrine.orm.em1_entity_manager', 'em2' => 'doctrine.orm.em2_entity_manager'), $container->getParameter('doctrine.orm.entity_managers'), "Set of the existing EntityManagers names is incorrect."); $def1 = $container->getDefinition('doctrine.orm.em1_metadata_driver'); $def2 = $container->getDefinition('doctrine.orm.em2_metadata_driver');