Skip to content

Commit 8d6670b

Browse files
committed
minor #18529 [HttpKernel] Renamed the argument resolver tag (iltar)
This PR was merged into the 3.1-dev branch. Discussion ---------- [HttpKernel] Renamed the argument resolver tag | Q | A | ------------- | --- | Branch? | master | Bug fix? | no | New feature? | no | BC breaks? | not if merged before 3.1 | Deprecations? | no | Tests pass? | yes | Fixed tickets | ~ | License | MIT | Doc PR | ~ Changed as discussed several times: #18510 (comment), symfony/symfony-docs#6422 (comment). Commits ------- cd10057 Renamed argument resolver tag, added test
2 parents d479934 + cd10057 commit 8d6670b

File tree

3 files changed

+69
-5
lines changed

3 files changed

+69
-5
lines changed

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/ControllerArgumentValueResolverPass.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public function process(ContainerBuilder $container)
2929
}
3030

3131
$definition = $container->getDefinition('argument_resolver');
32-
$argumentResolvers = $this->findAndSortTaggedServices('controller_argument.value_resolver', $container);
32+
$argumentResolvers = $this->findAndSortTaggedServices('controller.argument_value_resolver', $container);
3333
$definition->replaceArgument(1, $argumentResolvers);
3434
}
3535

src/Symfony/Bundle/FrameworkBundle/Resources/config/web.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,19 @@
2525
</service>
2626

2727
<service id="argument_resolver.request_attribute" class="Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestAttributeValueResolver" public="false">
28-
<tag name="controller_argument.value_resolver" priority="100" />
28+
<tag name="controller.argument_value_resolver" priority="100" />
2929
</service>
3030

3131
<service id="argument_resolver.request" class="Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestValueResolver" public="false">
32-
<tag name="controller_argument.value_resolver" priority="50" />
32+
<tag name="controller.argument_value_resolver" priority="50" />
3333
</service>
3434

3535
<service id="argument_resolver.default" class="Symfony\Component\HttpKernel\Controller\ArgumentResolver\DefaultValueResolver" public="false">
36-
<tag name="controller_argument.value_resolver" priority="-100" />
36+
<tag name="controller.argument_value_resolver" priority="-100" />
3737
</service>
3838

3939
<service id="argument_resolver.variadic" class="Symfony\Component\HttpKernel\Controller\ArgumentResolver\VariadicValueResolver" public="false">
40-
<tag name="controller_argument.value_resolver" priority="-150" />
40+
<tag name="controller.argument_value_resolver" priority="-150" />
4141
</service>
4242

4343
<service id="response_listener" class="Symfony\Component\HttpKernel\EventListener\ResponseListener">
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Symfony package.
5+
*
6+
* (c) Fabien Potencier <fabien@symfony.com>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespace Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\Compiler;
13+
14+
use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\ControllerArgumentValueResolverPass;
15+
use Symfony\Component\DependencyInjection\ContainerBuilder;
16+
use Symfony\Component\DependencyInjection\Definition;
17+
use Symfony\Component\DependencyInjection\Reference;
18+
use Symfony\Component\HttpKernel\Controller\ArgumentResolver;
19+
20+
class ControllerArgumentValueResolverPassTest extends \PHPUnit_Framework_TestCase
21+
{
22+
public function testServicesAreOrderedAccordingToPriority()
23+
{
24+
$services = array(
25+
'n3' => array(array()),
26+
'n1' => array(array('priority' => 200)),
27+
'n2' => array(array('priority' => 100)),
28+
);
29+
30+
$expected = array(
31+
new Reference('n1'),
32+
new Reference('n2'),
33+
new Reference('n3'),
34+
);
35+
36+
$definition = new Definition(ArgumentResolver::class, array(null, array()));
37+
$container = new ContainerBuilder();
38+
$container->setDefinition('argument_resolver', $definition);
39+
40+
foreach ($services as $id => list($tag)) {
41+
$container->register($id)->addTag('controller.argument_value_resolver', $tag);
42+
}
43+
44+
(new ControllerArgumentValueResolverPass())->process($container);
45+
$this->assertEquals($expected, $definition->getArgument(1));
46+
}
47+
48+
public function testReturningEmptyArrayWhenNoService()
49+
{
50+
$definition = new Definition(ArgumentResolver::class, array(null, array()));
51+
$container = new ContainerBuilder();
52+
$container->setDefinition('argument_resolver', $definition);
53+
54+
(new ControllerArgumentValueResolverPass())->process($container);
55+
$this->assertEquals(array(), $definition->getArgument(1));
56+
}
57+
58+
public function testNoArgumentResolver()
59+
{
60+
$container = new ContainerBuilder();
61+
62+
(new ControllerArgumentValueResolverPass())->process($container);
63+
}
64+
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy