Skip to content

Commit 0c5d510

Browse files
committed
bug #47764 [Serializer] fixed traceable decoration priorities (mtarld)
This PR was merged into the 6.1 branch. Discussion ---------- [Serializer] fixed traceable decoration priorities | Q | A | ------------- | --- | Branch? | 6.1 | Bug fix? | yes | New feature? | no <!-- please update src/**/CHANGELOG.md files --> | Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files --> | Tickets | Related to https://github.com/symfony/symfony/issues/46471 The decoration priority of `TraceableNormalizer` and `TraceableEncoder` is too high, therefore while it should be the last decoration applied, it is applied before userland decorations. I've set the decoration priority to `0`, but maybe `-255` might be better. Moreover, I've seen the very same thing for the `TraceableValidator`, is it a bug or wanted? Commits ------- 48572055ad [Serializer] fixed traceable decoration priorities
2 parents c876df1 + bf2cb07 commit 0c5d510

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

DependencyInjection/SerializerPass.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public function process(ContainerBuilder $container)
4444
if ($container->getParameter('kernel.debug') && $container->hasDefinition('serializer.data_collector')) {
4545
foreach (array_keys($normalizers) as $normalizer) {
4646
$container->register('debug.'.$normalizer, TraceableNormalizer::class)
47-
->setDecoratedService($normalizer, null, 255)
47+
->setDecoratedService($normalizer)
4848
->setArguments([new Reference('debug.'.$normalizer.'.inner'), new Reference('serializer.data_collector')]);
4949
}
5050
}
@@ -59,7 +59,7 @@ public function process(ContainerBuilder $container)
5959
if ($container->getParameter('kernel.debug') && $container->hasDefinition('serializer.data_collector')) {
6060
foreach (array_keys($encoders) as $encoder) {
6161
$container->register('debug.'.$encoder, TraceableEncoder::class)
62-
->setDecoratedService($encoder, null, 255)
62+
->setDecoratedService($encoder)
6363
->setArguments([new Reference('debug.'.$encoder.'.inner'), new Reference('serializer.data_collector')]);
6464
}
6565
}

Tests/DependencyInjection/SerializerPassTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,12 +108,12 @@ public function testNormalizersAndEncodersAreDecoredAndOrderedWhenCollectingData
108108
$traceableEncoderDefinition = $container->getDefinition('debug.e');
109109

110110
$this->assertEquals(TraceableNormalizer::class, $traceableNormalizerDefinition->getClass());
111-
$this->assertEquals(['n', null, 255], $traceableNormalizerDefinition->getDecoratedService());
111+
$this->assertEquals(['n', null, 0], $traceableNormalizerDefinition->getDecoratedService());
112112
$this->assertEquals(new Reference('debug.n.inner'), $traceableNormalizerDefinition->getArgument(0));
113113
$this->assertEquals(new Reference('serializer.data_collector'), $traceableNormalizerDefinition->getArgument(1));
114114

115115
$this->assertEquals(TraceableEncoder::class, $traceableEncoderDefinition->getClass());
116-
$this->assertEquals(['e', null, 255], $traceableEncoderDefinition->getDecoratedService());
116+
$this->assertEquals(['e', null, 0], $traceableEncoderDefinition->getDecoratedService());
117117
$this->assertEquals(new Reference('debug.e.inner'), $traceableEncoderDefinition->getArgument(0));
118118
$this->assertEquals(new Reference('serializer.data_collector'), $traceableEncoderDefinition->getArgument(1));
119119
}

0 commit comments

Comments
 (0)