Skip to content

Commit 65e7423

Browse files
committed
bug #54791 [FrameworkBundle] move wiring of the property info extractor to the ObjectNormalizer (xabbuh)
This PR was merged into the 5.4 branch. Discussion ---------- [FrameworkBundle] move wiring of the property info extractor to the ObjectNormalizer | Q | A | ------------- | --- | Branch? | 5.4 | Bug fix? | yes | New feature? | no | Deprecations? | no | Issues | | License | MIT The PropertyNormalizer does not handle a property info extractor. It looks like the argument was accidentally added to instead of the ObjectNormalizer in #52917. Commits ------- 518bc283a0 move wiring of the property info extractor to the ObjectNormalizer
2 parents 9e62703 + 87b6700 commit 65e7423

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

DependencyInjection/FrameworkExtension.php

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1854,18 +1854,19 @@ private function registerSerializerConfiguration(array $config, ContainerBuilder
18541854
$container->setParameter('serializer.default_context', $defaultContext);
18551855
}
18561856

1857+
$arguments = $container->getDefinition('serializer.normalizer.object')->getArguments();
1858+
$context = [];
1859+
18571860
if (isset($config['circular_reference_handler']) && $config['circular_reference_handler']) {
1858-
$arguments = $container->getDefinition('serializer.normalizer.object')->getArguments();
1859-
$context = ($arguments[6] ?? $defaultContext) + ['circular_reference_handler' => new Reference($config['circular_reference_handler'])];
1861+
$context += ($arguments[6] ?? $defaultContext) + ['circular_reference_handler' => new Reference($config['circular_reference_handler'])];
18601862
$container->getDefinition('serializer.normalizer.object')->setArgument(5, null);
1861-
$container->getDefinition('serializer.normalizer.object')->setArgument(6, $context);
18621863
}
18631864

18641865
if ($config['max_depth_handler'] ?? false) {
1865-
$arguments = $container->getDefinition('serializer.normalizer.object')->getArguments();
1866-
$context = ($arguments[6] ?? $defaultContext) + ['max_depth_handler' => new Reference($config['max_depth_handler'])];
1867-
$container->getDefinition('serializer.normalizer.object')->setArgument(6, $context);
1866+
$context += ($arguments[6] ?? $defaultContext) + ['max_depth_handler' => new Reference($config['max_depth_handler'])];
18681867
}
1868+
1869+
$container->getDefinition('serializer.normalizer.object')->setArgument(6, $context);
18691870
}
18701871

18711872
private function registerPropertyInfoConfiguration(ContainerBuilder $container, PhpFileLoader $loader)

Resources/config/serializer.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,8 @@
125125
service('property_info')->ignoreOnInvalid(),
126126
service('serializer.mapping.class_discriminator_resolver')->ignoreOnInvalid(),
127127
null,
128+
null,
129+
service('property_info')->ignoreOnInvalid(),
128130
])
129131
->tag('serializer.normalizer', ['priority' => -1000])
130132

@@ -138,7 +140,6 @@
138140
service('serializer.mapping.class_discriminator_resolver')->ignoreOnInvalid(),
139141
null,
140142
[],
141-
service('property_info')->ignoreOnInvalid(),
142143
])
143144

144145
->alias(PropertyNormalizer::class, 'serializer.normalizer.property')

0 commit comments

Comments
 (0)