From bb87a0be74621d00aa3934e18427802434a0f85d Mon Sep 17 00:00:00 2001 From: Richard Miller Date: Fri, 23 Dec 2011 16:20:22 +0000 Subject: [PATCH] Made default manager configurable Conflicts: DependencyInjection/FOQElasticaExtension.php Resources/config/config.xml Resources/config/mongodb.xml Resources/config/orm.xml Resources/config/propel.xml --- DependencyInjection/Configuration.php | 1 + DependencyInjection/FOQElasticaExtension.php | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index 2ad8143..e3cb3e6 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -26,6 +26,7 @@ class Configuration ->children() ->scalarNode('default_client')->end() ->scalarNode('default_index')->end() + ->scalarNode('default_manager')->defaultValue('orm')->end() ->end() ; diff --git a/DependencyInjection/FOQElasticaExtension.php b/DependencyInjection/FOQElasticaExtension.php index 4000fc4..c039302 100644 --- a/DependencyInjection/FOQElasticaExtension.php +++ b/DependencyInjection/FOQElasticaExtension.php @@ -52,6 +52,8 @@ class FOQElasticaExtension extends Extension $container->setAlias('foq_elastica.client', sprintf('foq_elastica.client.%s', $config['default_client'])); $container->setAlias('foq_elastica.index', sprintf('foq_elastica.index.%s', $config['default_index'])); + + $this->createDefaultManagerAlias($config['default_manager'], $container); } /** @@ -390,4 +392,22 @@ class FOQElasticaExtension extends Extension $loader->load($driver.'.xml'); $this->loadedDrivers[] = $driver; } + + protected function createDefaultManagerAlias($defaultManager, ContainerBuilder $container) + { + if (0 == count($this->loadedDrivers)) { + return; + } + + if (count($this->loadedDrivers) > 1 + && in_array($defaultManager, $this->loadedDrivers) + ) { + $defaultManagerService = $defaultManager; + } else { + $defaultManagerService = $this->loadedDrivers[0]; + } + + $container->setAlias('foq_elastica.manager', sprintf('foq_elastica.manager.%s', $defaultManagerService)); + } + }