[DoctrineBundle] moved more DIC definition into orm.xml
This commit is contained in:
parent
6d334289ee
commit
f7808de3a8
@ -64,9 +64,10 @@ class DoctrineExtension extends AbstractDoctrineExtension
|
|||||||
$keys = array_keys($config['connections']);
|
$keys = array_keys($config['connections']);
|
||||||
$config['default_connection'] = reset($keys);
|
$config['default_connection'] = reset($keys);
|
||||||
}
|
}
|
||||||
|
$this->defaultConnection = $config['default_connection'];
|
||||||
|
|
||||||
$container->setAlias('database_connection', sprintf('doctrine.dbal.%s_connection', $config['default_connection']));
|
$container->setAlias('database_connection', sprintf('doctrine.dbal.%s_connection', $this->defaultConnection));
|
||||||
$container->setAlias('doctrine.dbal.event_manager', new Alias(sprintf('doctrine.dbal.%s_connection.event_manager', $config['default_connection']), false));
|
$container->setAlias('doctrine.dbal.event_manager', new Alias(sprintf('doctrine.dbal.%s_connection.event_manager', $this->defaultConnection), false));
|
||||||
|
|
||||||
$container->getDefinition('doctrine.dbal.connection_factory')->replaceArgument(0, $config['types']);
|
$container->getDefinition('doctrine.dbal.connection_factory')->replaceArgument(0, $config['types']);
|
||||||
|
|
||||||
@ -75,7 +76,7 @@ class DoctrineExtension extends AbstractDoctrineExtension
|
|||||||
$connections[$name] = sprintf('doctrine.dbal.%s_connection', $name);
|
$connections[$name] = sprintf('doctrine.dbal.%s_connection', $name);
|
||||||
}
|
}
|
||||||
$container->getDefinition('doctrine')->replaceArgument(1, $connections);
|
$container->getDefinition('doctrine')->replaceArgument(1, $connections);
|
||||||
$container->getDefinition('doctrine')->replaceArgument(3, $config['default_connection']);
|
$container->getDefinition('doctrine')->replaceArgument(3, $this->defaultConnection);
|
||||||
|
|
||||||
foreach ($config['connections'] as $name => $connection) {
|
foreach ($config['connections'] as $name => $connection) {
|
||||||
$this->loadDbalConnection($name, $connection, $container);
|
$this->loadDbalConnection($name, $connection, $container);
|
||||||
@ -220,23 +221,21 @@ class DoctrineExtension extends AbstractDoctrineExtension
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$entityManagerService = sprintf('doctrine.orm.%s_entity_manager', $entityManager['name']);
|
if (!isset($entityManager['connection'])) {
|
||||||
$connectionId = isset($entityManager['connection']) ? sprintf('doctrine.dbal.%s_connection', $entityManager['connection']) : 'database_connection';
|
$entityManager['connection'] = $this->defaultConnection;
|
||||||
$eventManagerID = isset($entityManager['connection']) ? sprintf('doctrine.dbal.%s_connection.event_manager', $entityManager['connection']) : 'doctrine.dbal.event_manager';
|
}
|
||||||
|
|
||||||
$ormEmArgs = array(
|
$container
|
||||||
new Reference($connectionId),
|
->setDefinition(sprintf('doctrine.orm.%s_entity_manager', $entityManager['name']), new DefinitionDecorator('doctrine.orm.entity_manager.abstract'))
|
||||||
new Reference(sprintf('doctrine.orm.%s_configuration', $entityManager['name']))
|
->setArguments(array(
|
||||||
);
|
new Reference(sprintf('doctrine.dbal.%s_connection', $entityManager['connection'])),
|
||||||
|
new Reference(sprintf('doctrine.orm.%s_configuration', $entityManager['name']))
|
||||||
$ormEmDef = new Definition('%doctrine.orm.entity_manager.class%', $ormEmArgs);
|
))
|
||||||
$ormEmDef->setFactoryClass('%doctrine.orm.entity_manager.class%');
|
;
|
||||||
$ormEmDef->setFactoryMethod('create');
|
|
||||||
$container->setDefinition($entityManagerService, $ormEmDef);
|
|
||||||
|
|
||||||
$container->setAlias(
|
$container->setAlias(
|
||||||
sprintf('doctrine.orm.%s_entity_manager.event_manager', $entityManager['name']),
|
sprintf('doctrine.orm.%s_entity_manager.event_manager', $entityManager['name']),
|
||||||
new Alias($eventManagerID, false)
|
new Alias(sprintf('doctrine.dbal.%s_connection.event_manager', $entityManager['connection']), false)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,5 +58,7 @@
|
|||||||
</service>
|
</service>
|
||||||
|
|
||||||
<service id="doctrine.orm.configuration" class="%doctrine.orm.configuration.class%" abstract="true" public="false" />
|
<service id="doctrine.orm.configuration" class="%doctrine.orm.configuration.class%" abstract="true" public="false" />
|
||||||
|
|
||||||
|
<service id="doctrine.orm.entity_manager.abstract" class="%doctrine.orm.entity_manager.class%" factory-class="%doctrine.orm.entity_manager.class%" factory-method="create" abstract="true" />
|
||||||
</services>
|
</services>
|
||||||
</container>
|
</container>
|
||||||
|
@ -157,7 +157,7 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
|
|||||||
|
|
||||||
$arguments = $definition->getArguments();
|
$arguments = $definition->getArguments();
|
||||||
$this->assertInstanceOf('Symfony\Component\DependencyInjection\Reference', $arguments[0]);
|
$this->assertInstanceOf('Symfony\Component\DependencyInjection\Reference', $arguments[0]);
|
||||||
$this->assertEquals('database_connection', (string) $arguments[0]);
|
$this->assertEquals('doctrine.dbal.default_connection', (string) $arguments[0]);
|
||||||
$this->assertInstanceOf('Symfony\Component\DependencyInjection\Reference', $arguments[1]);
|
$this->assertInstanceOf('Symfony\Component\DependencyInjection\Reference', $arguments[1]);
|
||||||
$this->assertEquals('doctrine.orm.default_configuration', (string) $arguments[1]);
|
$this->assertEquals('doctrine.orm.default_configuration', (string) $arguments[1]);
|
||||||
|
|
||||||
@ -195,7 +195,7 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
|
|||||||
$this->assertEquals('create', $definition->getFactoryMethod());
|
$this->assertEquals('create', $definition->getFactoryMethod());
|
||||||
|
|
||||||
$this->assertDICConstructorArguments($definition, array(
|
$this->assertDICConstructorArguments($definition, array(
|
||||||
new Reference('database_connection'), new Reference('doctrine.orm.default_configuration')
|
new Reference('doctrine.dbal.default_connection'), new Reference('doctrine.orm.default_configuration')
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -233,7 +233,7 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
|
|||||||
$this->assertEquals('create', $definition->getFactoryMethod());
|
$this->assertEquals('create', $definition->getFactoryMethod());
|
||||||
|
|
||||||
$this->assertDICConstructorArguments($definition, array(
|
$this->assertDICConstructorArguments($definition, array(
|
||||||
new Reference('database_connection'), new Reference('doctrine.orm.default_configuration')
|
new Reference('doctrine.dbal.default_connection'), new Reference('doctrine.orm.default_configuration')
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user