Skip to content

Commit 3d2bc48

Browse files
bug #31073 #30998 Fix deprecated setCircularReferenceHandler call (dhaarbrink)
This PR was squashed before being merged into the 4.3-dev branch (closes #31073). Discussion ---------- #30998 Fix deprecated setCircularReferenceHandler call | Q | A | ------------- | --- | Branch? | 4.2 | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | #30998 | License | MIT Instead of calling the `setCircularReferenceHandler()` method, it puts the handler in the default context. Commits ------- 3a68040 #30998 Fix deprecated setCircularReferenceHandler call
2 parents 15fedec + 3a68040 commit 3d2bc48

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

+4-1
Original file line numberDiff line numberDiff line change
@@ -1510,7 +1510,10 @@ private function registerSerializerConfiguration(array $config, ContainerBuilder
15101510
}
15111511

15121512
if (isset($config['circular_reference_handler']) && $config['circular_reference_handler']) {
1513-
$container->getDefinition('serializer.normalizer.object')->addMethodCall('setCircularReferenceHandler', [new Reference($config['circular_reference_handler'])]);
1513+
$arguments = $container->getDefinition('serializer.normalizer.object')->getArguments();
1514+
$context = ($arguments[6] ?? []) + ['circular_reference_handler' => new Reference($config['circular_reference_handler'])];
1515+
$container->getDefinition('serializer.normalizer.object')->setArgument(5, null);
1516+
$container->getDefinition('serializer.normalizer.object')->setArgument(6, $context);
15141517
}
15151518

15161519
if ($config['max_depth_handler'] ?? false) {

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -1146,8 +1146,8 @@ public function testSerializerEnabled()
11461146
$this->assertNull($container->getDefinition('serializer.mapping.class_metadata_factory')->getArgument(1));
11471147
$this->assertEquals(new Reference('serializer.name_converter.camel_case_to_snake_case'), $container->getDefinition('serializer.name_converter.metadata_aware')->getArgument(1));
11481148
$this->assertEquals(new Reference('property_info', ContainerBuilder::IGNORE_ON_INVALID_REFERENCE), $container->getDefinition('serializer.normalizer.object')->getArgument(3));
1149-
$this->assertEquals(['setCircularReferenceHandler', [new Reference('my.circular.reference.handler')]], $container->getDefinition('serializer.normalizer.object')->getMethodCalls()[0]);
1150-
$this->assertEquals(['setMaxDepthHandler', [new Reference('my.max.depth.handler')]], $container->getDefinition('serializer.normalizer.object')->getMethodCalls()[1]);
1149+
$this->assertArrayHasKey('circular_reference_handler', $container->getDefinition('serializer.normalizer.object')->getArgument(6));
1150+
$this->assertEquals(['setMaxDepthHandler', [new Reference('my.max.depth.handler')]], $container->getDefinition('serializer.normalizer.object')->getMethodCalls()[0]);
11511151
}
11521152

11531153
public function testRegisterSerializerExtractor()

0 commit comments

Comments
 (0)