Skip to content

Commit dd2caf4

Browse files
committed
Merge branch '6.4' into 7.0
* 6.4: [6.3] Remove unused test fixture [5.4] Remove unused test fixtures [Dotent] Add PHPDoc for `$overrideExistingVars` [SecurityBundle] Fix missing login-link element in xsd schema [Validator] Add missing Chinese translations #51934 replace a not-existing virtual request stack with the real one [Messenger] add handler description as array key to `HandlerFailedException::getWrappedExceptions()` [Serializer] Fix using `DateIntervalNormalizer` with union types [Validator] fix: add missing translations for for Thai (th) fix #52273 [doctrine-messenger] DB table locks on messenger_messages with many failures [Serializer] Handle defaultContext for DateTimeNormalizer declare constructor argument as optional for backwards compatibility [CI] Add step to verify symfony/deprecation-contracts requirements
2 parents 091fc25 + 11028d6 commit dd2caf4

File tree

2 files changed

+29
-7
lines changed

2 files changed

+29
-7
lines changed

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}.
@@ -30,6 +31,10 @@ public function process(ContainerBuilder $container): void
3031

3132
$definition = $container->getDefinition('data_collector.dump');
3233

34+
if (!$container->has('.virtual_request_stack')) {
35+
$definition->replaceArgument(3, new Reference('request_stack'));
36+
}
37+
3338
if (!$container->hasParameter('web_profiler.debug_toolbar.mode') || WebDebugToolbarListener::DISABLED === $container->getParameter('web_profiler.debug_toolbar.mode')) {
3439
$definition->replaceArgument(3, null);
3540
}

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)