From e38f7d41ef612cb29107dec80b1653cece4c9e45 Mon Sep 17 00:00:00 2001 From: "tien.xuan.vo" Date: Sat, 30 Nov 2019 22:31:45 +0700 Subject: [PATCH] [DependencyInjection][Xml] Fix the attribute 'tag' is not allowed in 'bind' tag --- .../Loader/schema/dic/services/services-1.0.xsd | 1 + .../Component/DependencyInjection/Tests/Fixtures/Bar.php | 2 +- .../Tests/Fixtures/xml/services_bindings.xml | 1 + .../Tests/Fixtures/yaml/services_bindings.yml | 1 + .../DependencyInjection/Tests/Loader/XmlFileLoaderTest.php | 2 ++ .../DependencyInjection/Tests/Loader/YamlFileLoaderTest.php | 2 ++ 6 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd b/src/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd index 4f85f41035d8e..2f745c3326d49 100644 --- a/src/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd +++ b/src/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd @@ -222,6 +222,7 @@ + diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Bar.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Bar.php index 1aaca2f1560c9..7e1a30b5ffa07 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Bar.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Bar.php @@ -15,7 +15,7 @@ class Bar implements BarInterface { public $quz; - public function __construct($quz = null, \NonExistent $nonExistent = null, BarInterface $decorated = null, array $foo = []) + public function __construct($quz = null, \NonExistent $nonExistent = null, BarInterface $decorated = null, array $foo = [], iterable $baz = []) { $this->quz = $quz; } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services_bindings.xml b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services_bindings.xml index 8e4486c0ba67e..e111af4fcee26 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services_bindings.xml +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services_bindings.xml @@ -12,6 +12,7 @@ null + diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services_bindings.yml b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services_bindings.yml index 0eba120b586e2..31eec7e2ebdac 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services_bindings.yml +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services_bindings.yml @@ -12,6 +12,7 @@ services: bind: Symfony\Component\DependencyInjection\Tests\Fixtures\BarInterface: '@Symfony\Component\DependencyInjection\Tests\Fixtures\Bar' $foo: [ ~ ] + iterable $baz: !tagged_iterator bar Symfony\Component\DependencyInjection\Tests\Fixtures\Bar: factory: [ ~, 'create' ] diff --git a/src/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php b/src/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php index 2c5386572a439..14ba4c7f6e567 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php @@ -879,12 +879,14 @@ public function testBindings() '$foo' => [null], '$quz' => 'quz', '$factory' => 'factory', + 'iterable $baz' => new TaggedIteratorArgument('bar'), ], array_map(function (BoundArgument $v) { return $v->getValues()[0]; }, $definition->getBindings())); $this->assertEquals([ 'quz', null, new Reference(Bar::class), [null], + new TaggedIteratorArgument('bar'), ], $definition->getArguments()); $definition = $container->getDefinition(Bar::class); diff --git a/src/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php b/src/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php index c35f36567b618..fc827df18cd4f 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php @@ -801,12 +801,14 @@ public function testBindings() '$foo' => [null], '$quz' => 'quz', '$factory' => 'factory', + 'iterable $baz' => new TaggedIteratorArgument('bar'), ], array_map(function (BoundArgument $v) { return $v->getValues()[0]; }, $definition->getBindings())); $this->assertEquals([ 'quz', null, new Reference(Bar::class), [null], + new TaggedIteratorArgument('bar'), ], $definition->getArguments()); $definition = $container->getDefinition(Bar::class);