From 64fa26e3d9fa38b9fdda1280a72bf5f820046fdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michae=CC=88l=20Perrin?= Date: Wed, 17 Dec 2014 12:44:57 +0100 Subject: [PATCH 1/2] Fix PHP notice when using indexes without defined types --- Configuration/Source/ContainerSource.php | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/Configuration/Source/ContainerSource.php b/Configuration/Source/ContainerSource.php index 8d094c7..da77009 100644 --- a/Configuration/Source/ContainerSource.php +++ b/Configuration/Source/ContainerSource.php @@ -41,13 +41,16 @@ class ContainerSource implements SourceInterface $indexes = array(); foreach ($this->configArray as $config) { $types = array(); - foreach ($config['types'] as $typeConfig) { - $types[$typeConfig['name']] = new TypeConfig( - $typeConfig['name'], - $typeConfig['mapping'], - $typeConfig['config'] - ); - // TODO: handle prototypes.. + + if (isset($config['types'])) { + foreach ($config['types'] as $typeConfig) { + $types[$typeConfig['name']] = new TypeConfig( + $typeConfig['name'], + $typeConfig['mapping'], + $typeConfig['config'] + ); + // TODO: handle prototypes.. + } } $index = new IndexConfig($config['name'], $types, array( From b9b0c1b961d8cfaac02e0787af0ee7f4cbc5c9a0 Mon Sep 17 00:00:00 2001 From: Tim Nagel Date: Thu, 22 Jan 2015 09:33:46 +1100 Subject: [PATCH 2/2] Move TypeConfig creation to its own method --- Configuration/Source/ContainerSource.php | 38 ++++++++++++++++-------- Tests/Functional/app/Basic/config.yml | 1 + 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/Configuration/Source/ContainerSource.php b/Configuration/Source/ContainerSource.php index da77009..abcdf1b 100644 --- a/Configuration/Source/ContainerSource.php +++ b/Configuration/Source/ContainerSource.php @@ -40,19 +40,7 @@ class ContainerSource implements SourceInterface { $indexes = array(); foreach ($this->configArray as $config) { - $types = array(); - - if (isset($config['types'])) { - foreach ($config['types'] as $typeConfig) { - $types[$typeConfig['name']] = new TypeConfig( - $typeConfig['name'], - $typeConfig['mapping'], - $typeConfig['config'] - ); - // TODO: handle prototypes.. - } - } - + $types = $this->getTypes($config); $index = new IndexConfig($config['name'], $types, array( 'elasticSearchName' => $config['elasticsearch_name'], 'settings' => $config['settings'], @@ -64,4 +52,28 @@ class ContainerSource implements SourceInterface return $indexes; } + + /** + * Builds TypeConfig objects for each type. + * + * @param array $config + * @return array + */ + protected function getTypes($config) + { + $types = array(); + + if (isset($config['types'])) { + foreach ($config['types'] as $typeConfig) { + $types[$typeConfig['name']] = new TypeConfig( + $typeConfig['name'], + $typeConfig['mapping'], + $typeConfig['config'] + ); + // TODO: handle prototypes.. + } + } + + return $types; + } } diff --git a/Tests/Functional/app/Basic/config.yml b/Tests/Functional/app/Basic/config.yml index ebd1ea0..3d0e120 100644 --- a/Tests/Functional/app/Basic/config.yml +++ b/Tests/Functional/app/Basic/config.yml @@ -92,3 +92,4 @@ fos_elastica: identifier: "id" null_mappings: mappings: ~ + empty_index: ~