From 5ed5b40f94517df9483b2c5071a7b56e414e4c0e Mon Sep 17 00:00:00 2001 From: Damien ALEXANDRE Date: Fri, 12 Jul 2024 15:56:27 +0200 Subject: [PATCH] fix(bridge): Make sure the client config option is an array Refs: #187 --- src/Bridge/Symfony/DependencyInjection/Configuration.php | 4 +++- .../Symfony/DependencyInjection/ElasticallyExtension.php | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Bridge/Symfony/DependencyInjection/Configuration.php b/src/Bridge/Symfony/DependencyInjection/Configuration.php index a12d272..a6cbaef 100644 --- a/src/Bridge/Symfony/DependencyInjection/Configuration.php +++ b/src/Bridge/Symfony/DependencyInjection/Configuration.php @@ -28,13 +28,15 @@ public function getConfigTreeBuilder(): TreeBuilder ->normalizeKeys(false) ->prototype('array') ->children() - ->variableNode('client') + ->arrayNode('client') ->info('All options for the Elastica client constructor') ->example([ 'host' => '%env(ELASTICSEARCH_HOST)%', 'transport' => 'JoliCode\Elastically\Transport\HttpClientTransport', ]) + ->normalizeKeys(false) ->defaultValue([]) + ->prototype('variable')->end() ->end() ->scalarNode('mapping_directory') ->info('Path to the mapping directory (in YAML)') diff --git a/src/Bridge/Symfony/DependencyInjection/ElasticallyExtension.php b/src/Bridge/Symfony/DependencyInjection/ElasticallyExtension.php index cf178f7..2c15ea1 100644 --- a/src/Bridge/Symfony/DependencyInjection/ElasticallyExtension.php +++ b/src/Bridge/Symfony/DependencyInjection/ElasticallyExtension.php @@ -70,7 +70,7 @@ private function buildConnection(string $name, array $config, bool $isDefaultCon if (\array_key_exists('client', $config) && \array_key_exists('transport', $config['client'])) { $config['client']['transport'] = new Reference($config['client']['transport']); } - $client->replaceArgument('$config', $config['client']); + $client->replaceArgument('$config', $config['client'] ?? []); $client->replaceArgument('$resultSetBuilder', new Reference("elastically.{$name}.result_set_builder")); $client->replaceArgument('$indexNameMapper', new Reference("elastically.{$name}.index_name_mapper")); $container->setDefinition($id = "elastically.{$name}.client", $client);