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

Skip to content

Commit d2acc8f

Browse files
committed
[FrameworkBundle] Configurable Serializer name converter
1 parent 5f36605 commit d2acc8f

File tree

4 files changed

+12
-0
lines changed

4 files changed

+12
-0
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -660,6 +660,7 @@ private function addSerializerSection(ArrayNodeDefinition $rootNode)
660660
->children()
661661
->booleanNode('enable_annotations')->defaultFalse()->end()
662662
->scalarNode('cache')->end()
663+
->scalarNode('name_converter')->end()
663664
->end()
664665
->end()
665666
->end()

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -970,6 +970,12 @@ private function registerSerializerConfiguration(array $config, ContainerBuilder
970970
1, new Reference($config['cache'])
971971
);
972972
}
973+
974+
if (isset($config['name_converter']) && $config['name_converter']) {
975+
$container->getDefinition('serializer.normalizer.object')->replaceArgument(
976+
1, new Reference($config['name_converter'])
977+
);
978+
}
973979
}
974980

975981
/**

src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,5 +217,6 @@
217217
<xsd:attribute name="enabled" type="xsd:boolean" />
218218
<xsd:attribute name="cache" type="xsd:string" />
219219
<xsd:attribute name="enable-annotations" type="xsd:boolean" />
220+
<xsd:attribute name="name-converter" type="xsd:string" />
220221
</xsd:complexType>
221222
</xsd:schema>

src/Symfony/Bundle/FrameworkBundle/Resources/config/serializer.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
<!-- Normalizer -->
2121
<service id="serializer.normalizer.object" class="Symfony\Component\Serializer\Normalizer\ObjectNormalizer" public="false">
2222
<argument type="service" id="serializer.mapping.class_metadata_factory" />
23+
<argument>null</argument> <!-- Replaced by the extension if a name converted is configured -->
2324

2425
<!-- Run after all custom serializers -->
2526
<tag name="serializer.normalizer" priority="-1000" />
@@ -51,5 +52,8 @@
5152
<service id="serializer.encoder.json" class="%serializer.encoder.json.class%" public="false">
5253
<tag name="serializer.encoder" />
5354
</service>
55+
56+
<!-- Name converter -->
57+
<service id="serializer.name_converter.camel_case_to_snake_case" class="Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter" public="false" />
5458
</services>
5559
</container>

0 commit comments

Comments
 (0)