File tree 4 files changed +7
-6
lines changed
DependencyInjection/Compiler
Tests/DependencyInjection/Compiler
Component/HttpKernel/Controller
4 files changed +7
-6
lines changed Original file line number Diff line number Diff line change 11
11
12
12
namespace Symfony \Bundle \FrameworkBundle \DependencyInjection \Compiler ;
13
13
14
+ use Symfony \Component \DependencyInjection \Argument \IteratorArgument ;
14
15
use Symfony \Component \DependencyInjection \Compiler \CompilerPassInterface ;
15
16
use Symfony \Component \DependencyInjection \Compiler \PriorityTaggedServiceTrait ;
16
17
use Symfony \Component \DependencyInjection \ContainerBuilder ;
@@ -32,6 +33,6 @@ public function process(ContainerBuilder $container)
32
33
33
34
$ definition = $ container ->getDefinition ('argument_resolver ' );
34
35
$ argumentResolvers = $ this ->findAndSortTaggedServices ('controller.argument_value_resolver ' , $ container );
35
- $ definition ->replaceArgument (1 , $ argumentResolvers );
36
+ $ definition ->replaceArgument (1 , new IteratorArgument ( $ argumentResolvers) );
36
37
}
37
38
}
Original file line number Diff line number Diff line change 21
21
22
22
<service id =" argument_resolver" class =" Symfony\Component\HttpKernel\Controller\ArgumentResolver" public =" false" >
23
23
<argument type =" service" id =" argument_metadata_factory" />
24
- <argument type = " collection " / >
24
+ <argument /> <!-- argument value resolvers -- >
25
25
</service >
26
26
27
27
<service id =" argument_resolver.request_attribute" class =" Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestAttributeValueResolver" public =" false" >
Original file line number Diff line number Diff line change @@ -42,7 +42,7 @@ public function testServicesAreOrderedAccordingToPriority()
42
42
}
43
43
44
44
(new ControllerArgumentValueResolverPass ())->process ($ container );
45
- $ this ->assertEquals ($ expected , $ definition ->getArgument (1 ));
45
+ $ this ->assertEquals ($ expected , $ definition ->getArgument (1 )-> getValues () );
46
46
}
47
47
48
48
public function testReturningEmptyArrayWhenNoService ()
@@ -52,7 +52,7 @@ public function testReturningEmptyArrayWhenNoService()
52
52
$ container ->setDefinition ('argument_resolver ' , $ definition );
53
53
54
54
(new ControllerArgumentValueResolverPass ())->process ($ container );
55
- $ this ->assertEquals (array (), $ definition ->getArgument (1 ));
55
+ $ this ->assertEquals (array (), $ definition ->getArgument (1 )-> getValues () );
56
56
}
57
57
58
58
public function testNoArgumentResolver ()
Original file line number Diff line number Diff line change @@ -29,11 +29,11 @@ final class ArgumentResolver implements ArgumentResolverInterface
29
29
private $ argumentMetadataFactory ;
30
30
31
31
/**
32
- * @var ArgumentValueResolverInterface[]
32
+ * @var iterable| ArgumentValueResolverInterface[]
33
33
*/
34
34
private $ argumentValueResolvers ;
35
35
36
- public function __construct (ArgumentMetadataFactoryInterface $ argumentMetadataFactory = null , array $ argumentValueResolvers = array ())
36
+ public function __construct (ArgumentMetadataFactoryInterface $ argumentMetadataFactory = null , $ argumentValueResolvers = array ())
37
37
{
38
38
$ this ->argumentMetadataFactory = $ argumentMetadataFactory ?: new ArgumentMetadataFactory ();
39
39
$ this ->argumentValueResolvers = $ argumentValueResolvers ?: self ::getDefaultArgumentValueResolvers ();
You can’t perform that action at this time.
0 commit comments