Skip to content

Commit 6a0c643

Browse files
committed
Merge branch '7.2' into 7.3
* 7.2: Tweaks [Serializer] Add SnakeCaseToCamelCaseNameConverter
2 parents 8801059 + 1056528 commit 6a0c643

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

serializer.rst

+65
Original file line numberDiff line numberDiff line change
@@ -1239,6 +1239,71 @@ setting the ``name_converter`` setting to
12391239
];
12401240
$serializer = new Serializer($normalizers, $encoders);
12411241
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+
12421307
.. _serializer-built-in-normalizers:
12431308

12441309
Serializer Normalizers

0 commit comments

Comments
 (0)