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']);
$ormConfigDef = new Definition('Doctrine\ORM\Configuration');
$ormConfigDef = new Definition('%doctrine.orm.configuration_class%');
$ormConfigDef->setPublic(false);
$container->setDefinition($configServiceName, $ormConfigDef);
@ -187,10 +187,11 @@ class DoctrineExtension extends AbstractDoctrineExtension
}
$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(
new Reference(sprintf('doctrine.dbal.%s_connection', $connectionName)),
new Reference($connectionId),
new Reference(sprintf('doctrine.orm.%s_configuration', $entityManager['name']))
);
$ormEmDef = new Definition('%doctrine.orm.entity_manager_class%', $ormEmArgs);
@ -201,7 +202,7 @@ class DoctrineExtension extends AbstractDoctrineExtension
$container->setAlias(
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)
{
if ('memcache' === $cacheDriver['type']) {
$cacheDef = new Definition('%doctrine.orm.cache.memcache_class%');
$memcacheInstance = new Definition('%doctrine.orm.cache.memcache_instance_class%');
$memcacheClass = !empty ($cacheDriver['class']) ? $cacheDriver['class'] : '%doctrine.orm.cache.memcache_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(
'%doctrine.orm.cache.memcache_host%', '%doctrine.orm.cache.memcache_port%'
$memcacheHost, $memcachePort
));
$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']))));

View File

@ -160,7 +160,7 @@ abstract class AbstractDoctrineExtensionTest extends TestCase
$arguments = $definition->getArguments();
$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->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->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->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();
$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',
array(new Reference('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(
'%doctrine.orm.cache.memcache_host%', '%doctrine.orm.cache.memcache_port%'
'localhost', '11211'
));
}