[DoctrineBundle] Cloning cache driver service for each usage so we can set a prefix to avoid caching conflicts

This commit is contained in:
Jonathan H. Wage 2010-02-24 12:03:18 -05:00 committed by Fabien Potencier
parent 3671f4a08a
commit 0c3a4b15ec
1 changed files with 12 additions and 3 deletions

View File

@ -179,10 +179,19 @@ class DoctrineExtension extends LoaderExtension
sprintf('doctrine.orm.%s_configuration', $name), $ormConfigDef
);
$drivers = array('metadata', 'query', 'result');
foreach ($drivers as $driver)
{
$definition = $configuration->getDefinition(sprintf('doctrine.orm.cache.%s', $configuration->getParameter('doctrine.orm.cache_driver')));
$clone = clone $definition;
$clone->addMethodCall('setNamespace', array(sprintf('doctrine_%s_', $driver)));
$configuration->setDefinition(sprintf('doctrine.orm.%s_cache', $driver), $clone);
}
$methods = array(
'setMetadataCacheImpl' => new Reference('doctrine.orm.cache'),
'setQueryCacheImpl' => new Reference('doctrine.orm.cache'),
'setResultCacheImpl' => new Reference('doctrine.orm.cache'),
'setMetadataCacheImpl' => new Reference('doctrine.orm.metadata_cache'),
'setQueryCacheImpl' => new Reference('doctrine.orm.query_cache'),
'setResultCacheImpl' => new Reference('doctrine.orm.result_cache'),
'setMetadataDriverImpl' => new Reference('doctrine.orm.metadata_driver'),
'setProxyDir' => '%kernel.cache_dir%/doctrine/Proxies',
'setProxyNamespace' => 'Proxies',