[DoctrineBundle] changed doctrine.orm.entity_managers parameter to store the names and the ids
This commit is contained in:
parent
a2a8edbabd
commit
43e38c3ba4
@ -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
|
||||
-------------
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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');
|
||||
|
@ -7,7 +7,6 @@
|
||||
<parameters>
|
||||
<parameter key="doctrine.orm.configuration.class">Doctrine\ORM\Configuration</parameter>
|
||||
<parameter key="doctrine.orm.entity_manager.class">Doctrine\ORM\EntityManager</parameter>
|
||||
<parameter key="doctrine.orm.entity_managers" type="collection"></parameter>
|
||||
|
||||
<!-- cache -->
|
||||
<parameter key="doctrine.orm.cache.array.class">Doctrine\Common\Cache\ArrayCache</parameter>
|
||||
|
@ -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'))
|
||||
|
@ -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');
|
||||
|
Reference in New Issue
Block a user