Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 065bf48

Browse files
committed
feature #22011 [FrameworkBundle][Serializer] Add option to register a circular_reference_handler (lyrixx)
This PR was merged into the 3.3-dev branch. Discussion ---------- [FrameworkBundle][Serializer] Add option to register a circular_reference_handler | Q | A | ------------- | --- | Branch? | master | Bug fix? | no | New feature? | yes | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | - | License | MIT | Doc PR | - --- Right now, it's quite hard (especially for new comers) to register a CircularReferenceHandler: ![screenshot1](https://cloud.githubusercontent.com/assets/408368/23959193/ce19bcec-09a4-11e7-82c7-80abd7b7f602.png) --- This PR introduce an option to wire a service to the internal Object Normalizer. Commits ------- 0a638f5 [FrameworkBundle][Serializer] Add option to register a "circular_reference_handler"
2 parents 7b60064 + 0a638f5 commit 065bf48

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -686,6 +686,7 @@ private function addSerializerSection(ArrayNodeDefinition $rootNode)
686686
->booleanNode('enable_annotations')->{!class_exists(FullStack::class) && class_exists(Annotation::class) ? 'defaultTrue' : 'defaultFalse'}()->end()
687687
->scalarNode('cache')->end()
688688
->scalarNode('name_converter')->end()
689+
->scalarNode('circular_reference_handler')->end()
689690
->end()
690691
->end()
691692
->end()

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1294,6 +1294,10 @@ private function registerSerializerConfiguration(array $config, ContainerBuilder
12941294
if (isset($config['name_converter']) && $config['name_converter']) {
12951295
$container->getDefinition('serializer.normalizer.object')->replaceArgument(1, new Reference($config['name_converter']));
12961296
}
1297+
1298+
if (isset($config['circular_reference_handler']) && $config['circular_reference_handler']) {
1299+
$container->getDefinition('serializer.normalizer.object')->addMethodCall('setCircularReferenceHandler', array(new Reference($config['circular_reference_handler'])));
1300+
}
12971301
}
12981302

12991303
/**

0 commit comments

Comments
 (0)