Skip to content

Commit a53b26e

Browse files
committed
minor #20774 [Serializer] Add SnakeCaseToCamelCaseNameConverter (alamirault)
This PR was merged into the 7.2 branch. Discussion ---------- [Serializer] Add SnakeCaseToCamelCaseNameConverter Fix #20151 Continue work started in #20160 Commits ------- 4213bb5 [Serializer] Add SnakeCaseToCamelCaseNameConverter
2 parents 754d876 + 4213bb5 commit a53b26e

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

serializer.rst

+61
Original file line numberDiff line numberDiff line change
@@ -1239,6 +1239,67 @@ 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 is common to use camelCase to name properties. However
1246+
some packages can use snake_case as convention.
1247+
1248+
Symfony provides a built-in name converter designed to transform between
1249+
CamelCase and snake_cased 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+
12421303
.. _serializer-built-in-normalizers:
12431304

12441305
Serializer Normalizers

0 commit comments

Comments
 (0)