From 632e934cfa6e9b0d0927e113173943b193693f8a Mon Sep 17 00:00:00 2001 From: Roland Franssen Date: Mon, 27 Mar 2017 16:07:30 +0200 Subject: [PATCH] [DI] Allow imports in string format for YAML --- .../Component/DependencyInjection/Loader/YamlFileLoader.php | 5 ++++- .../DependencyInjection/Tests/Fixtures/yaml/bad_import.yml | 2 +- .../DependencyInjection/Tests/Fixtures/yaml/services4.yml | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php b/src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php index 7a0123ba21bf5..8ac54173ec5f1 100644 --- a/src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php +++ b/src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php @@ -177,7 +177,10 @@ private function parseImports(array $content, $file) $defaultDirectory = dirname($file); foreach ($content['imports'] as $import) { if (!is_array($import)) { - throw new InvalidArgumentException(sprintf('The values in the "imports" key should be arrays in %s. Check your YAML syntax.', $file)); + $import = array('resource' => $import); + } + if (!isset($import['resource'])) { + throw new InvalidArgumentException(sprintf('An import should provide a resource in %s. Check your YAML syntax.', $file)); } $this->setCurrentDir($defaultDirectory); diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/bad_import.yml b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/bad_import.yml index 0765dc8dd0856..2dbbcbf2653f3 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/bad_import.yml +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/bad_import.yml @@ -1,2 +1,2 @@ imports: - - foo.yml + - { resource: ~ } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services4.yml b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services4.yml index 92758190befaa..073f55547330e 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services4.yml +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services4.yml @@ -1,5 +1,5 @@ imports: - - { resource: services2.yml } + - services2.yml - { resource: services3.yml } - { resource: "../php/simple.php" } - { resource: "../ini/parameters.ini", class: Symfony\Component\DependencyInjection\Loader\IniFileLoader }