File tree 1 file changed +34
-0
lines changed
1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change @@ -628,6 +628,40 @@ processes::
628
628
$anne = $normalizer->denormalize(['first_name' => 'Anne'], 'Person');
629
629
// Person object with firstName: 'Anne'
630
630
631
+ .. _using-underscored-method-names-for-camelized-attributes :
632
+
633
+ snake_case to CamelCase
634
+ ~~~~~~~~~~~~~~~~~~~~~~~
635
+
636
+ Symfony provides a built-in name converter designed to transform between
637
+ snake_case and CamelCased styles during serialization and deserialization
638
+ processes::
639
+
640
+ use Symfony\Component\Serializer\NameConverter\SnakeCaseToCamelCaseNameConverter;
641
+ use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
642
+
643
+ $normalizer = new ObjectNormalizer(null, new SnakeCaseToCamelCaseNameConverter());
644
+
645
+ class Person
646
+ {
647
+ public function __construct(
648
+ private string $fullName,
649
+ ) {
650
+ }
651
+
652
+ public function getFullName(): string
653
+ {
654
+ return $this->fullName;
655
+ }
656
+ }
657
+
658
+ $john = new Person('john_doe');
659
+ $normalizer->normalize($john);
660
+ // ['full_name' => 'johnDoe'];
661
+
662
+ $john = $normalizer->denormalize(['full_name' => 'johnDoe'], 'Person');
663
+ // Person object with fullName: 'jonh_doe'
664
+
631
665
.. _serializer_name-conversion :
632
666
633
667
Configure name conversion using metadata
You can’t perform that action at this time.
0 commit comments