[DependencyInjection] Apply ExpressionLanguageProviderPass to router.default

This commit is contained in:
Douglas Hammond 2020-06-01 10:45:15 -04:00 committed by Fabien Potencier
parent e5b5d9ea14
commit 215ad1f93d
2 changed files with 7 additions and 7 deletions

View File

@ -28,8 +28,8 @@ class AddExpressionLanguageProvidersPass implements CompilerPassInterface
public function process(ContainerBuilder $container)
{
// routing
if ($container->has('router')) {
$definition = $container->findDefinition('router');
if ($container->has('router.default')) {
$definition = $container->findDefinition('router.default');
foreach ($container->findTaggedServiceIds('routing.expression_language_provider', true) as $id => $attributes) {
$definition->addMethodCall('addExpressionLanguageProvider', [new Reference($id)]);
}

View File

@ -22,16 +22,16 @@ class AddExpressionLanguageProvidersPassTest extends TestCase
public function testProcessForRouter()
{
$container = new ContainerBuilder();
$container->addCompilerPass(new AddExpressionLanguageProvidersPass(false));
$container->addCompilerPass(new AddExpressionLanguageProvidersPass());
$definition = new Definition('\stdClass');
$definition->addTag('routing.expression_language_provider');
$container->setDefinition('some_routing_provider', $definition->setPublic(true));
$container->register('router', '\stdClass')->setPublic(true);
$container->register('router.default', '\stdClass')->setPublic(true);
$container->compile();
$router = $container->getDefinition('router');
$router = $container->getDefinition('router.default');
$calls = $router->getMethodCalls();
$this->assertCount(1, $calls);
$this->assertEquals('addExpressionLanguageProvider', $calls[0][0]);
@ -41,14 +41,14 @@ class AddExpressionLanguageProvidersPassTest extends TestCase
public function testProcessForRouterAlias()
{
$container = new ContainerBuilder();
$container->addCompilerPass(new AddExpressionLanguageProvidersPass(false));
$container->addCompilerPass(new AddExpressionLanguageProvidersPass());
$definition = new Definition('\stdClass');
$definition->addTag('routing.expression_language_provider');
$container->setDefinition('some_routing_provider', $definition->setPublic(true));
$container->register('my_router', '\stdClass')->setPublic(true);
$container->setAlias('router', 'my_router');
$container->setAlias('router.default', 'my_router');
$container->compile();
$router = $container->getDefinition('my_router');