Refactored the config to use the right parameters instead of using the default values

This commit is contained in:
Christophe Coevoet 2011-02-24 22:06:21 +01:00
parent 527749ca3f
commit f37a2a9513
2 changed files with 18 additions and 13 deletions

View File

@ -165,7 +165,7 @@ class DoctrineExtension extends AbstractDoctrineExtension
{ {
$configServiceName = sprintf('doctrine.orm.%s_configuration', $entityManager['name']); $configServiceName = sprintf('doctrine.orm.%s_configuration', $entityManager['name']);
$ormConfigDef = new Definition('Doctrine\ORM\Configuration'); $ormConfigDef = new Definition('%doctrine.orm.configuration_class%');
$ormConfigDef->setPublic(false); $ormConfigDef->setPublic(false);
$container->setDefinition($configServiceName, $ormConfigDef); $container->setDefinition($configServiceName, $ormConfigDef);
@ -187,10 +187,11 @@ class DoctrineExtension extends AbstractDoctrineExtension
} }
$entityManagerService = sprintf('doctrine.orm.%s_entity_manager', $entityManager['name']); $entityManagerService = sprintf('doctrine.orm.%s_entity_manager', $entityManager['name']);
$connectionName = isset($entityManager['connection']) ? $entityManager['connection'] : $entityManager['name']; $connectionId = isset($entityManager['connection']) ? sprintf('doctrine.dbal.%s_connection', $entityManager['connection']) : 'database_connection';
$eventManagerID = isset($entityManager['connection']) ? sprintf('doctrine.dbal.%s_connection.event_manager', $entityManager['connection']) : 'doctrine.dbal.event_manager';
$ormEmArgs = array( $ormEmArgs = array(
new Reference(sprintf('doctrine.dbal.%s_connection', $connectionName)), new Reference($connectionId),
new Reference(sprintf('doctrine.orm.%s_configuration', $entityManager['name'])) new Reference(sprintf('doctrine.orm.%s_configuration', $entityManager['name']))
); );
$ormEmDef = new Definition('%doctrine.orm.entity_manager_class%', $ormEmArgs); $ormEmDef = new Definition('%doctrine.orm.entity_manager_class%', $ormEmArgs);
@ -201,7 +202,7 @@ class DoctrineExtension extends AbstractDoctrineExtension
$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(sprintf('doctrine.dbal.%s_connection.event_manager', $connectionName), false) new Alias($eventManagerID, false)
); );
} }
@ -304,10 +305,14 @@ class DoctrineExtension extends AbstractDoctrineExtension
protected function getEntityManagerCacheDefinition(array $entityManager, $cacheDriver, ContainerBuilder $container) protected function getEntityManagerCacheDefinition(array $entityManager, $cacheDriver, ContainerBuilder $container)
{ {
if ('memcache' === $cacheDriver['type']) { if ('memcache' === $cacheDriver['type']) {
$cacheDef = new Definition('%doctrine.orm.cache.memcache_class%'); $memcacheClass = !empty ($cacheDriver['class']) ? $cacheDriver['class'] : '%doctrine.orm.cache.memcache_class%';
$memcacheInstance = new Definition('%doctrine.orm.cache.memcache_instance_class%'); $memcacheInstanceClass = !empty ($cacheDriver['instance_class']) ? $cacheDriver['instance_class'] : '%doctrine.orm.cache.memcache_instance_class%';
$memcacheHost = !empty ($cacheDriver['host']) ? $cacheDriver['host'] : '%doctrine.orm.cache.memcache_host%';
$memcachePort = !empty ($cacheDriver['port']) ? $cacheDriver['port'] : '%doctrine.orm.cache.memcache_port%';
$cacheDef = new Definition($memcacheClass);
$memcacheInstance = new Definition($memcacheInstanceClass);
$memcacheInstance->addMethodCall('connect', array( $memcacheInstance->addMethodCall('connect', array(
'%doctrine.orm.cache.memcache_host%', '%doctrine.orm.cache.memcache_port%' $memcacheHost, $memcachePort
)); ));
$container->setDefinition(sprintf('doctrine.orm.%s_memcache_instance', $entityManager['name']), $memcacheInstance); $container->setDefinition(sprintf('doctrine.orm.%s_memcache_instance', $entityManager['name']), $memcacheInstance);
$cacheDef->addMethodCall('setMemcache', array(new Reference(sprintf('doctrine.orm.%s_memcache_instance', $entityManager['name'])))); $cacheDef->addMethodCall('setMemcache', array(new Reference(sprintf('doctrine.orm.%s_memcache_instance', $entityManager['name']))));

View File

@ -160,7 +160,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('doctrine.dbal.default_connection', (string) $arguments[0]); $this->assertEquals('database_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]);
@ -198,7 +198,7 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
$this->assertArrayHasKey('doctrine.orm.entity_manager', $definition->getTags()); $this->assertArrayHasKey('doctrine.orm.entity_manager', $definition->getTags());
$this->assertDICConstructorArguments($definition, array( $this->assertDICConstructorArguments($definition, array(
new Reference('doctrine.dbal.default_connection'), new Reference('doctrine.orm.default_configuration') new Reference('database_connection'), new Reference('doctrine.orm.default_configuration')
)); ));
} }
@ -238,7 +238,7 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
$this->assertArrayHasKey('doctrine.orm.entity_manager', $definition->getTags()); $this->assertArrayHasKey('doctrine.orm.entity_manager', $definition->getTags());
$this->assertDICConstructorArguments($definition, array( $this->assertDICConstructorArguments($definition, array(
new Reference('doctrine.dbal.default_connection'), new Reference('doctrine.orm.default_configuration') new Reference('database_connection'), new Reference('doctrine.orm.default_configuration')
)); ));
} }
@ -489,15 +489,15 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
$container->compile(); $container->compile();
$definition = $container->getDefinition('doctrine.orm.default_metadata_cache'); $definition = $container->getDefinition('doctrine.orm.default_metadata_cache');
$this->assertDICDefinitionClass($definition, '%doctrine.orm.cache.memcache_class%'); $this->assertDICDefinitionClass($definition, 'Doctrine\Common\Cache\MemcacheCache');
$this->assertDICDefinitionMethodCallOnce($definition, 'setMemcache', $this->assertDICDefinitionMethodCallOnce($definition, 'setMemcache',
array(new Reference('doctrine.orm.default_memcache_instance')) array(new Reference('doctrine.orm.default_memcache_instance'))
); );
$definition = $container->getDefinition('doctrine.orm.default_memcache_instance'); $definition = $container->getDefinition('doctrine.orm.default_memcache_instance');
$this->assertDICDefinitionClass($definition, '%doctrine.orm.cache.memcache_instance_class%'); $this->assertDICDefinitionClass($definition, 'Memcache');
$this->assertDICDefinitionMethodCallOnce($definition, 'connect', array( $this->assertDICDefinitionMethodCallOnce($definition, 'connect', array(
'%doctrine.orm.cache.memcache_host%', '%doctrine.orm.cache.memcache_port%' 'localhost', '11211'
)); ));
} }