From 99c6aa9ac78c811abf23905e6d3d5e61a424471a Mon Sep 17 00:00:00 2001 From: nurikabe Date: Mon, 2 Apr 2012 13:53:51 -0400 Subject: [PATCH 1/2] Allow "_source" configuration as per https://github.com/Exercise/FOQElasticaBundle/issues/83. --- DependencyInjection/Configuration.php | 27 ++++++++++++++++++++ DependencyInjection/FOQElasticaExtension.php | 5 +++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index 775ecc2..16c268e 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -207,6 +207,7 @@ class Configuration ->end() ->end() ->append($this->getMappingsNode()) + ->append($this->getSourceNode()) ->end() ; @@ -256,4 +257,30 @@ class Configuration return $node; } + + /** + * Returns the array node used for "_source". + */ + protected function getSourceNode() + { + $builder = new TreeBuilder(); + $node = $builder->root('_source'); + + $node + ->children() + ->arrayNode('excludes') + ->addDefaultsIfNotSet() + ->useAttributeAsKey('name') + ->prototype('scalar')->end() + ->end() + ->arrayNode('includes') + ->addDefaultsIfNotSet() + ->useAttributeAsKey('name') + ->prototype('scalar')->end() + ->end() + ->end() + ; + + return $node; + } } diff --git a/DependencyInjection/FOQElasticaExtension.php b/DependencyInjection/FOQElasticaExtension.php index 317b9fd..a82e47b 100644 --- a/DependencyInjection/FOQElasticaExtension.php +++ b/DependencyInjection/FOQElasticaExtension.php @@ -167,8 +167,11 @@ class FOQElasticaExtension extends Extension $typeDef->setFactoryService($indexId); $typeDef->setFactoryMethod('getType'); $container->setDefinition($typeId, $typeDef); + if (isset($type['_source'])) { + $this->indexConfigs[$indexName]['config']['mappings'][$name]['_source'] = $type['_source']; + } if (isset($type['mappings'])) { - $this->indexConfigs[$indexName]['config']['mappings'][$name] = array('properties' => $type['mappings']); + $this->indexConfigs[$indexName]['config']['mappings'][$name]['properties'] = $type['mappings']; $typeName = sprintf('%s/%s', $indexName, $name); $this->typeFields[$typeName] = array_keys($type['mappings']); } From 87f1141d2ecd02c90d1fac3909f07394cea13af5 Mon Sep 17 00:00:00 2001 From: nurikabe Date: Mon, 2 Apr 2012 14:15:12 -0400 Subject: [PATCH 2/2] Remove addDefaultsIfNotSet() on prototyped array node. --- DependencyInjection/Configuration.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index 16c268e..661d893 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -269,12 +269,10 @@ class Configuration $node ->children() ->arrayNode('excludes') - ->addDefaultsIfNotSet() ->useAttributeAsKey('name') ->prototype('scalar')->end() ->end() ->arrayNode('includes') - ->addDefaultsIfNotSet() ->useAttributeAsKey('name') ->prototype('scalar')->end() ->end()