@@ -1239,6 +1239,71 @@ setting the ``name_converter`` setting to
1239
1239
];
1240
1240
$serializer = new Serializer($normalizers, $encoders);
1241
1241
1242
+ snake_case to CamelCase
1243
+ ~~~~~~~~~~~~~~~~~~~~~~~
1244
+
1245
+ In Symfony applications, it is common to use camelCase for naming properties.
1246
+ However some packages may follow a snake_case convention.
1247
+
1248
+ Symfony provides a built-in name converter designed to transform between
1249
+ CamelCase and snake_case styles during serialization and deserialization
1250
+ processes. You can use it instead of the metadata-aware name converter by
1251
+ setting the ``name_converter `` setting to
1252
+ ``serializer.name_converter.snake_case_to_camel_case ``:
1253
+
1254
+ .. configuration-block ::
1255
+
1256
+ .. code-block :: yaml
1257
+
1258
+ # config/packages/serializer.yaml
1259
+ framework :
1260
+ serializer :
1261
+ name_converter : ' serializer.name_converter.snake_case_to_camel_case'
1262
+
1263
+ .. code-block :: xml
1264
+
1265
+ <!-- config/packages/serializer.xml -->
1266
+ <?xml version =" 1.0" encoding =" UTF-8" ?>
1267
+ <container xmlns =" http://symfony.com/schema/dic/services"
1268
+ xmlns : xsi =" http://www.w3.org/2001/XMLSchema-instance"
1269
+ xmlns : framework =" http://symfony.com/schema/dic/symfony"
1270
+ xsi : schemaLocation =" http://symfony.com/schema/dic/services
1271
+ https://symfony.com/schema/dic/services/services-1.0.xsd
1272
+ http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd" >
1273
+
1274
+ <framework : config >
1275
+ <framework : serializer
1276
+ name-converter =" serializer.name_converter.snake_case_to_camel_case"
1277
+ />
1278
+ </framework : config >
1279
+ </container >
1280
+
1281
+ .. code-block :: php
1282
+
1283
+ // config/packages/serializer.php
1284
+ use Symfony\Config\FrameworkConfig;
1285
+
1286
+ return static function (FrameworkConfig $framework): void {
1287
+ $framework->serializer()
1288
+ ->nameConverter('serializer.name_converter.snake_case_to_camel_case')
1289
+ ;
1290
+ };
1291
+
1292
+ .. code-block :: php-standalone
1293
+
1294
+ use Symfony\Component\Serializer\NameConverter\SnakeCaseToCamelCaseNameConverter;
1295
+ use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
1296
+
1297
+ // ...
1298
+ $normalizers = [
1299
+ new ObjectNormalizer(null, new SnakeCaseToCamelCaseNameConverter()),
1300
+ ];
1301
+ $serializer = new Serializer($normalizers, $encoders);
1302
+
1303
+ .. versionadded :: 7.2
1304
+
1305
+ The snake_case to CamelCase converter was introduced in Symfony 7.2.
1306
+
1242
1307
.. _serializer-built-in-normalizers :
1243
1308
1244
1309
Serializer Normalizers
0 commit comments