Skip to content

Commit 4c52368

Browse files
dunglasfabpot
authored andcommitted
[Serializer] Add SnakeCaseToCamelCaseNameConverter
1 parent 154d168 commit 4c52368

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ CHANGELOG
1111
* [BC BREAK] The `secrets:decrypt-to-local` command terminates with a non-zero exit code when a secret could not be read
1212
* Deprecate making `cache.app` adapter taggable, use the `cache.app.taggable` adapter instead
1313
* Enable `json_decode_detailed_errors` in the default serializer context in debug mode by default when `seld/jsonlint` is installed
14+
* Register `Symfony\Component\Serializer\NameConverter\SnakeCaseToCamelCaseNameConverter` as a service named `serializer.name_converter.snake_case_to_camel_case` if available
1415

1516
7.1
1617
---

DependencyInjection/FrameworkExtension.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@
158158
use Symfony\Component\Serializer\Mapping\Loader\AttributeLoader;
159159
use Symfony\Component\Serializer\Mapping\Loader\XmlFileLoader;
160160
use Symfony\Component\Serializer\Mapping\Loader\YamlFileLoader;
161+
use Symfony\Component\Serializer\NameConverter\SnakeCaseToCamelCaseNameConverter;
161162
use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
162163
use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
163164
use Symfony\Component\Serializer\Serializer;
@@ -1849,6 +1850,11 @@ private function registerSerializerConfiguration(array $config, ContainerBuilder
18491850
$container->removeDefinition('serializer.normalizer.mime_message');
18501851
}
18511852

1853+
// BC layer Serializer < 7.2
1854+
if (!class_exists(SnakeCaseToCamelCaseNameConverter::class)) {
1855+
$container->removeDefinition('serializer.name_converter.snake_case_to_camel_case');
1856+
}
1857+
18521858
if ($container->getParameter('kernel.debug')) {
18531859
$container->removeDefinition('serializer.mapping.cache_class_metadata_factory');
18541860
}

Resources/config/serializer.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
use Symfony\Component\Serializer\Mapping\Loader\LoaderChain;
3232
use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter;
3333
use Symfony\Component\Serializer\NameConverter\MetadataAwareNameConverter;
34+
use Symfony\Component\Serializer\NameConverter\SnakeCaseToCamelCaseNameConverter;
3435
use Symfony\Component\Serializer\Normalizer\ArrayDenormalizer;
3536
use Symfony\Component\Serializer\Normalizer\BackedEnumNormalizer;
3637
use Symfony\Component\Serializer\Normalizer\ConstraintViolationListNormalizer;
@@ -186,8 +187,9 @@
186187
->set('serializer.encoder.csv', CsvEncoder::class)
187188
->tag('serializer.encoder')
188189

189-
// Name converter
190+
// Name converters
190191
->set('serializer.name_converter.camel_case_to_snake_case', CamelCaseToSnakeCaseNameConverter::class)
192+
->set('serializer.name_converter.snake_case_to_camel_case', SnakeCaseToCamelCaseNameConverter::class)
191193

192194
->set('serializer.name_converter.metadata_aware', MetadataAwareNameConverter::class)
193195
->args([service('serializer.mapping.class_metadata_factory')])

0 commit comments

Comments
 (0)