Skip to content

Commit 99a0dba

Browse files
committed
replace a not-existing virtual request stack with the real one
1 parent b3bfc6d commit 99a0dba

File tree

2 files changed

+29
-7
lines changed

2 files changed

+29
-7
lines changed

src/Symfony/Bundle/DebugBundle/DependencyInjection/Compiler/DumpDataCollectorPass.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener;
1515
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
1616
use Symfony\Component\DependencyInjection\ContainerBuilder;
17+
use Symfony\Component\DependencyInjection\Reference;
1718

1819
/**
1920
* Registers the file link format for the {@link \Symfony\Component\HttpKernel\DataCollector\DumpDataCollector}.
@@ -33,6 +34,10 @@ public function process(ContainerBuilder $container)
3334

3435
$definition = $container->getDefinition('data_collector.dump');
3536

37+
if (!$container->has('.virtual_request_stack')) {
38+
$definition->replaceArgument(3, new Reference('request_stack'));
39+
}
40+
3641
if (!$container->hasParameter('web_profiler.debug_toolbar.mode') || WebDebugToolbarListener::DISABLED === $container->getParameter('web_profiler.debug_toolbar.mode')) {
3742
$definition->replaceArgument(3, null);
3843
}

src/Symfony/Bundle/DebugBundle/Tests/DependencyInjection/Compiler/DumpDataCollectorPassTest.php

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
use Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener;
1717
use Symfony\Component\DependencyInjection\ContainerBuilder;
1818
use Symfony\Component\DependencyInjection\Definition;
19+
use Symfony\Component\DependencyInjection\Reference;
1920
use Symfony\Component\HttpFoundation\RequestStack;
2021
use Symfony\Component\HttpKernel\DataCollector\DumpDataCollector;
2122

@@ -26,35 +27,51 @@ public function testProcessWithoutFileLinkFormatParameter()
2627
$container = new ContainerBuilder();
2728
$container->addCompilerPass(new DumpDataCollectorPass());
2829

29-
$definition = new Definition(DumpDataCollector::class, [null, null, null, null]);
30+
$definition = new Definition(DumpDataCollector::class, [null, null, new Reference('.virtual_request_stack'), null]);
3031
$container->setDefinition('data_collector.dump', $definition);
3132

3233
$container->compile();
3334

3435
$this->assertNull($definition->getArgument(1));
3536
}
3637

37-
public function testProcessWithToolbarEnabled()
38+
public function testProcessWithToolbarEnabledAndVirtualRequestStackPresent()
3839
{
3940
$container = new ContainerBuilder();
41+
$container->register('request_stack', RequestStack::class);
42+
$container->register('.virtual_request_stack', RequestStack::class);
4043
$container->addCompilerPass(new DumpDataCollectorPass());
41-
$requestStack = new RequestStack();
4244

43-
$definition = new Definition(DumpDataCollector::class, [null, null, null, $requestStack]);
45+
$definition = new Definition(DumpDataCollector::class, [null, null, null, new Reference('.virtual_request_stack')]);
4446
$container->setDefinition('data_collector.dump', $definition);
4547
$container->setParameter('web_profiler.debug_toolbar.mode', WebDebugToolbarListener::ENABLED);
4648

4749
$container->compile();
4850

49-
$this->assertSame($requestStack, $definition->getArgument(3));
51+
$this->assertEquals(new Reference('.virtual_request_stack'), $definition->getArgument(3));
52+
}
53+
54+
public function testProcessWithToolbarEnabledAndVirtualRequestStackNotPresent()
55+
{
56+
$container = new ContainerBuilder();
57+
$container->register('request_stack', RequestStack::class);
58+
$container->addCompilerPass(new DumpDataCollectorPass());
59+
60+
$definition = new Definition(DumpDataCollector::class, [null, null, null, new Reference('.virtual_request_stack')]);
61+
$container->setDefinition('data_collector.dump', $definition);
62+
$container->setParameter('web_profiler.debug_toolbar.mode', WebDebugToolbarListener::ENABLED);
63+
64+
$container->compile();
65+
66+
$this->assertEquals(new Reference('request_stack'), $definition->getArgument(3));
5067
}
5168

5269
public function testProcessWithToolbarDisabled()
5370
{
5471
$container = new ContainerBuilder();
5572
$container->addCompilerPass(new DumpDataCollectorPass());
5673

57-
$definition = new Definition(DumpDataCollector::class, [null, null, null, new RequestStack()]);
74+
$definition = new Definition(DumpDataCollector::class, [null, null, new Reference('.virtual_request_stack'), new RequestStack()]);
5875
$container->setDefinition('data_collector.dump', $definition);
5976
$container->setParameter('web_profiler.debug_toolbar.mode', WebDebugToolbarListener::DISABLED);
6077

@@ -68,7 +85,7 @@ public function testProcessWithoutToolbar()
6885
$container = new ContainerBuilder();
6986
$container->addCompilerPass(new DumpDataCollectorPass());
7087

71-
$definition = new Definition(DumpDataCollector::class, [null, null, null, new RequestStack()]);
88+
$definition = new Definition(DumpDataCollector::class, [null, null, new Reference('.virtual_request_stack'), new RequestStack()]);
7289
$container->setDefinition('data_collector.dump', $definition);
7390

7491
$container->compile();

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