Skip to content

Commit 0b15edd

Browse files
committed
feature #37847 [Serializer][Mime] Fix Mime message serialization (fabpot)
This PR was merged into the 5.2-dev branch. Discussion ---------- [Serializer][Mime] Fix Mime message serialization | Q | A | ------------- | --- | Branch? | master <!-- see below --> | Bug fix? | yes | New feature? | yes <!-- please update src/**/CHANGELOG.md files --> | Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files --> | Tickets | Fix #37414, Fix #37324 <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead --> | License | MIT | Doc PR | n/a Symfony serialization is used by Messenger to serialize Emails. By Email messages are data objects with some logic to prepare emails to be sent. Without configuration, the Symfony Serializer serializes Emails with too many data (and triggers some unneeded validation). This PR aims to fix the above issue and at the same time makes serialized emails as small as possible and as readable as possible. Commits ------- 9d869b1ece Fix Mime message serialization
2 parents aa867c3 + adce1bb commit 0b15edd

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

Resources/config/serializer.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,11 @@
3939
use Symfony\Component\Serializer\Normalizer\DateTimeZoneNormalizer;
4040
use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
4141
use Symfony\Component\Serializer\Normalizer\JsonSerializableNormalizer;
42+
use Symfony\Component\Serializer\Normalizer\MimeMessageNormalizer;
4243
use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
4344
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
4445
use Symfony\Component\Serializer\Normalizer\ProblemNormalizer;
46+
use Symfony\Component\Serializer\Normalizer\PropertyNormalizer;
4547
use Symfony\Component\Serializer\Normalizer\UnwrappingDenormalizer;
4648
use Symfony\Component\Serializer\Serializer;
4749
use Symfony\Component\Serializer\SerializerInterface;
@@ -76,6 +78,10 @@
7678
->args([[], service('serializer.name_converter.metadata_aware')])
7779
->tag('serializer.normalizer', ['priority' => -915])
7880

81+
->set('serializer.normalizer.mime_message', MimeMessageNormalizer::class)
82+
->args([service('serializer.normalizer.property')])
83+
->tag('serializer.normalizer', ['priority' => -915])
84+
7985
->set('serializer.normalizer.datetimezone', DateTimeZoneNormalizer::class)
8086
->tag('serializer.normalizer', ['priority' => -915])
8187

@@ -114,6 +120,18 @@
114120

115121
->alias(ObjectNormalizer::class, 'serializer.normalizer.object')
116122

123+
->set('serializer.normalizer.property', PropertyNormalizer::class)
124+
->args([
125+
service('serializer.mapping.class_metadata_factory'),
126+
service('serializer.name_converter.metadata_aware'),
127+
service('property_info')->ignoreOnInvalid(),
128+
service('serializer.mapping.class_discriminator_resolver')->ignoreOnInvalid(),
129+
null,
130+
[],
131+
])
132+
133+
->alias(PropertyNormalizer::class, 'serializer.normalizer.property')
134+
117135
->set('serializer.denormalizer.array', ArrayDenormalizer::class)
118136
->tag('serializer.normalizer', ['priority' => -990])
119137

composer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
"symfony/security-bundle": "^5.1",
5353
"symfony/security-csrf": "^4.4|^5.0",
5454
"symfony/security-http": "^4.4|^5.0",
55-
"symfony/serializer": "^4.4|^5.0",
55+
"symfony/serializer": "^5.2",
5656
"symfony/stopwatch": "^4.4|^5.0",
5757
"symfony/string": "^5.0",
5858
"symfony/translation": "^5.0",
@@ -62,7 +62,7 @@
6262
"symfony/yaml": "^4.4|^5.0",
6363
"symfony/property-info": "^4.4|^5.0",
6464
"symfony/web-link": "^4.4|^5.0",
65-
"phpdocumentor/reflection-docblock": "^3.0|^4.0",
65+
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
6666
"paragonie/sodium_compat": "^1.8",
6767
"twig/twig": "^2.10|^3.0"
6868
},

0 commit comments

Comments
 (0)