Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit5e913c5

Browse files
committed
Add ChainNormalizer and ChainDenormalizer
1 parent85e0742 commit5e913c5

File tree

50 files changed

+970
-492
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+970
-492
lines changed

‎src/Symfony/Bridge/Twig/Tests/Extension/SerializerExtensionTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public static function serializerDataProvider(): \Generator
5050
privatefunctiongetTwig(string$template):Environment
5151
{
5252
$meta =newClassMetadataFactory(newAttributeLoader());
53-
$runtime =newSerializerRuntime(newSerializer([newObjectNormalizer($meta)], [newJsonEncoder(),newYamlEncoder()]));
53+
$runtime =newSerializerRuntime(newSerializer([], [newJsonEncoder(),newYamlEncoder()],newObjectNormalizer($meta),newObjectNormalizer($meta)));
5454

5555
$mockRuntimeLoader =$this->createMock(RuntimeLoaderInterface::class);
5656
$mockRuntimeLoader

‎src/Symfony/Bridge/Twig/Tests/Mime/TemplatedEmailTest.php

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
useSymfony\Component\PropertyInfo\Extractor\PhpDocExtractor;
1818
useSymfony\Component\Serializer\Encoder\JsonEncoder;
1919
useSymfony\Component\Serializer\Normalizer\ArrayDenormalizer;
20+
useSymfony\Component\Serializer\Normalizer\ChainDenormalizer;
21+
useSymfony\Component\Serializer\Normalizer\ChainNormalizer;
2022
useSymfony\Component\Serializer\Normalizer\MimeMessageNormalizer;
2123
useSymfony\Component\Serializer\Normalizer\ObjectNormalizer;
2224
useSymfony\Component\Serializer\Normalizer\PropertyNormalizer;
@@ -105,12 +107,23 @@ public function testSymfonySerialize()
105107

106108
$extractor =newPhpDocExtractor();
107109
$propertyNormalizer =newPropertyNormalizer(null,null,$extractor);
108-
$serializer =newSerializer([
110+
$normalizers = [
111+
newMimeMessageNormalizer($propertyNormalizer),
112+
newObjectNormalizer(null,null,null,$extractor),
113+
$propertyNormalizer,
114+
];
115+
$denormalizers = [
109116
newArrayDenormalizer(),
110117
newMimeMessageNormalizer($propertyNormalizer),
111118
newObjectNormalizer(null,null,null,$extractor),
112119
$propertyNormalizer,
113-
], [newJsonEncoder()]);
120+
];
121+
$serializer =newSerializer(
122+
[],
123+
[newJsonEncoder()],
124+
newChainNormalizer($normalizers),
125+
newChainDenormalizer($denormalizers),
126+
);
114127

115128
$serialized =$serializer->serialize($e,'json', [ObjectNormalizer::IGNORED_ATTRIBUTES => ['cachedBody']]);
116129
$this->assertStringMatchesFormat($expectedJson,json_encode(json_decode($serialized), \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES));

‎src/Symfony/Bridge/Twig/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
"symfony/security-core":"^6.4|^7.0",
4444
"symfony/security-csrf":"^6.4|^7.0",
4545
"symfony/security-http":"^6.4|^7.0",
46-
"symfony/serializer":"^6.4.3|^7.0.3",
46+
"symfony/serializer":"^7.1",
4747
"symfony/stopwatch":"^6.4|^7.0",
4848
"symfony/console":"^6.4|^7.0",
4949
"symfony/expression-language":"^6.4|^7.0",

‎src/Symfony/Bundle/FrameworkBundle/Resources/config/serializer.php

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
useSymfony\Component\Serializer\NameConverter\MetadataAwareNameConverter;
3434
useSymfony\Component\Serializer\Normalizer\ArrayDenormalizer;
3535
useSymfony\Component\Serializer\Normalizer\BackedEnumNormalizer;
36+
useSymfony\Component\Serializer\Normalizer\ChainDenormalizer;
37+
useSymfony\Component\Serializer\Normalizer\ChainNormalizer;
3638
useSymfony\Component\Serializer\Normalizer\ConstraintViolationListNormalizer;
3739
useSymfony\Component\Serializer\Normalizer\DataUriNormalizer;
3840
useSymfony\Component\Serializer\Normalizer\DateIntervalNormalizer;
@@ -58,12 +60,16 @@
5860
;
5961

6062
$container->services()
63+
->set('serializer.normalizer', ChainNormalizer::class)
64+
->args([[]])
65+
->set('serializer.denormalizer', ChainDenormalizer::class)
66+
->args([[]])
6167
->set('serializer', Serializer::class)
62-
->args([[], []])
68+
->args([[], [],service('serializer.normalizer'),service('serializer.denormalizer')])
6369

6470
->alias(SerializerInterface::class,'serializer')
65-
->alias(NormalizerInterface::class,'serializer')
66-
->alias(DenormalizerInterface::class,'serializer')
71+
->alias(NormalizerInterface::class,'serializer.normalizer')
72+
->alias(DenormalizerInterface::class,'serializer.denormalizer')
6773
->alias(EncoderInterface::class,'serializer')
6874
->alias(DecoderInterface::class,'serializer')
6975

‎src/Symfony/Bundle/FrameworkBundle/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
"symfony/scheduler":"^6.4.3|^7.0.3",
6060
"symfony/security-bundle":"^6.4|^7.0",
6161
"symfony/semaphore":"^6.4|^7.0",
62-
"symfony/serializer":"^6.4|^7.0",
62+
"symfony/serializer":"^7.1",
6363
"symfony/stopwatch":"^6.4|^7.0",
6464
"symfony/string":"^6.4|^7.0",
6565
"symfony/translation":"^6.4|^7.0",

‎src/Symfony/Component/ErrorHandler/Tests/ErrorRenderer/SerializerErrorRendererTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public function testSerializerContent()
3030
{
3131
$exception =new \RuntimeException('Foo');
3232
$errorRenderer =newSerializerErrorRenderer(
33-
newSerializer([newProblemNormalizer()],[newJsonEncoder()]),
33+
newSerializer([], [newJsonEncoder()],newProblemNormalizer()),
3434
fn () =>'json'
3535
);
3636

‎src/Symfony/Component/ErrorHandler/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
},
2323
"require-dev": {
2424
"symfony/http-kernel":"^6.4|^7.0",
25-
"symfony/serializer":"^6.4|^7.0",
25+
"symfony/serializer":"^7.1",
2626
"symfony/deprecation-contracts":"^2.5|^3"
2727
},
2828
"conflict": {

‎src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/RequestPayloadValueResolverTest.php

Lines changed: 41 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
useSymfony\Component\Serializer\Exception\NotNormalizableValueException;
2727
useSymfony\Component\Serializer\Exception\PartialDenormalizationException;
2828
useSymfony\Component\Serializer\Normalizer\DenormalizerInterface;
29+
useSymfony\Component\Serializer\Normalizer\ChainDenormalizer;
30+
useSymfony\Component\Serializer\Normalizer\ChainNormalizer;
2931
useSymfony\Component\Serializer\Normalizer\ObjectNormalizer;
3032
useSymfony\Component\Serializer\Serializer;
3133
useSymfony\Component\Serializer\SerializerInterface;
@@ -202,7 +204,10 @@ public function testQueryNullPayloadAndNotDefaultOrNullableArgument()
202204
}
203205
}
204206

205-
publicfunctiontestWithoutValidatorAndCouldNotDenormalize()
207+
/**
208+
* @group legacy
209+
*/
210+
publicfunctiontestWithoutValidatorAndCouldNotDenormalizeWithLegacySerializer()
206211
{
207212
$content ='{"price": 50, "title": ["not a string"]}';
208213
$serializer =newSerializer([newObjectNormalizer()], ['json' =>newJsonEncoder()]);
@@ -226,10 +231,34 @@ public function testWithoutValidatorAndCouldNotDenormalize()
226231
}
227232
}
228233

234+
publicfunctiontestWithoutValidatorAndCouldNotDenormalize()
235+
{
236+
$content ='{"price": 50, "title": ["not a string"]}';
237+
$serializer =newSerializer([], ['json' =>newJsonEncoder()],newChainNormalizer([newObjectNormalizer()]),newChainDenormalizer([newObjectNormalizer()]));
238+
239+
$resolver =newRequestPayloadValueResolver($serializer);
240+
241+
$argument =newArgumentMetadata('invalid', RequestPayload::class,false,false,null,false, [
242+
MapRequestPayload::class =>newMapRequestPayload(),
243+
]);
244+
$request = Request::create('/','POST', server: ['CONTENT_TYPE' =>'application/json'], content:$content);
245+
246+
$kernel =$this->createMock(HttpKernelInterface::class);
247+
$arguments =$resolver->resolve($request,$argument);
248+
$event =newControllerArgumentsEvent($kernel,function () {},$arguments,$request, HttpKernelInterface::MAIN_REQUEST);
249+
250+
try {
251+
$resolver->onKernelControllerArguments($event);
252+
$this->fail(sprintf('Expected "%s" to be thrown.', HttpException::class));
253+
}catch (HttpException$e) {
254+
$this->assertInstanceOf(PartialDenormalizationException::class,$e->getPrevious());
255+
}
256+
}
257+
229258
publicfunctiontestValidationNotPassed()
230259
{
231260
$content ='{"price": 50, "title": ["not a string"]}';
232-
$serializer =newSerializer([newObjectNormalizer()], ['json' =>newJsonEncoder()]);
261+
$serializer =newSerializer([], ['json' =>newJsonEncoder()],newChainNormalizer([newObjectNormalizer()]),newChainDenormalizer([newObjectNormalizer()]));
233262

234263
$validator =$this->createMock(ValidatorInterface::class);
235264
$validator->expects($this->never())
@@ -260,7 +289,7 @@ public function testValidationNotPassed()
260289
publicfunctiontestValidationNotPerformedWhenPartialDenormalizationReturnsViolation()
261290
{
262291
$content ='{"password": "abc"}';
263-
$serializer =newSerializer([newObjectNormalizer()], ['json' =>newJsonEncoder()]);
292+
$serializer =newSerializer([], ['json' =>newJsonEncoder()],newObjectNormalizer(),newObjectNormalizer());
264293

265294
$validator =$this->createMock(ValidatorInterface::class);
266295
$validator->expects($this->never())
@@ -314,7 +343,7 @@ public function testRequestContentValidationPassed()
314343
{
315344
$content ='{"price": 50}';
316345
$payload =newRequestPayload(50);
317-
$serializer =newSerializer([newObjectNormalizer()], ['json' =>newJsonEncoder()]);
346+
$serializer =newSerializer([], ['json' =>newJsonEncoder()],newChainNormalizer([newObjectNormalizer()]),newChainDenormalizer([newObjectNormalizer()]));
318347

319348
$validator =$this->createMock(ValidatorInterface::class);
320349
$validator->expects($this->once())
@@ -370,7 +399,7 @@ public function testQueryStringValidationPassed()
370399
$payload =newRequestPayload(50);
371400
$query = ['price' =>'50'];
372401

373-
$serializer =newSerializer([newObjectNormalizer()], ['json' =>newJsonEncoder()]);
402+
$serializer =newSerializer([], ['json' =>newJsonEncoder()],newChainNormalizer([newObjectNormalizer()]),newChainDenormalizer([newObjectNormalizer()]));
374403

375404
$validator =$this->createMock(ValidatorInterface::class);
376405
$validator->expects($this->once())
@@ -398,7 +427,7 @@ public function testRequestInputValidationPassed()
398427
$input = ['price' =>'50'];
399428
$payload =newRequestPayload(50);
400429

401-
$serializer =newSerializer([newObjectNormalizer()], ['json' =>newJsonEncoder()]);
430+
$serializer =newSerializer([], ['json' =>newJsonEncoder()],newChainNormalizer([newObjectNormalizer()]),newChainDenormalizer([newObjectNormalizer()]));
402431

403432
$validator =$this->createMock(ValidatorInterface::class);
404433
$validator->expects($this->once())
@@ -443,7 +472,7 @@ public function testItThrowsOnVariadicArgument()
443472
publicfunctiontestAcceptFormatPassed(mixed$acceptFormat,string$contentType,string$content)
444473
{
445474
$encoders = ['json' =>newJsonEncoder(),'xml' =>newXmlEncoder()];
446-
$serializer =newSerializer([newObjectNormalizer()],$encoders);
475+
$serializer =newSerializer([],$encoders,newObjectNormalizer(),newObjectNormalizer());
447476
$validator = (newValidatorBuilder())->getValidator();
448477
$resolver =newRequestPayloadValueResolver($serializer,$validator);
449478

@@ -506,7 +535,7 @@ public static function provideMatchedFormatContext(): iterable
506535
*/
507536
publicfunctiontestAcceptFormatNotPassed(mixed$acceptFormat,string$contentType,string$content,string$expectedExceptionMessage)
508537
{
509-
$serializer =newSerializer([newObjectNormalizer()]);
538+
$serializer =newSerializer([], [],newObjectNormalizer(),newObjectNormalizer());
510539
$validator = (newValidatorBuilder())->getValidator();
511540
$resolver =newRequestPayloadValueResolver($serializer,$validator);
512541

@@ -577,7 +606,7 @@ public function testValidationGroupsPassed(string $method, ValueResolver $attrib
577606
$payload =newRequestPayload(50);
578607
$payload->title ='A long title, so the validation passes';
579608

580-
$serializer =newSerializer([newObjectNormalizer()]);
609+
$serializer =newSerializer([], [],newObjectNormalizer(),newObjectNormalizer());
581610
$validator = (newValidatorBuilder())->enableAttributeMapping()->getValidator();
582611
$resolver =newRequestPayloadValueResolver($serializer,$validator);
583612

@@ -603,7 +632,7 @@ public function testValidationGroupsNotPassed(string $method, ValueResolver $att
603632
{
604633
$input = ['price' =>'50','title' =>'Too short'];
605634

606-
$serializer =newSerializer([newObjectNormalizer()]);
635+
$serializer =newSerializer([], [],newObjectNormalizer(),newObjectNormalizer());
607636
$validator = (newValidatorBuilder())->enableAttributeMapping()->getValidator();
608637
$resolver =newRequestPayloadValueResolver($serializer,$validator);
609638

@@ -662,7 +691,7 @@ public static function provideValidationGroupsOnManyTypes(): iterable
662691

663692
publicfunctiontestQueryValidationErrorCustomStatusCode()
664693
{
665-
$serializer =newSerializer([newObjectNormalizer()], []);
694+
$serializer =newSerializer([], [],newObjectNormalizer(),newObjectNormalizer());
666695

667696
$validator =$this->createMock(ValidatorInterface::class);
668697

@@ -695,7 +724,7 @@ public function testQueryValidationErrorCustomStatusCode()
695724
publicfunctiontestRequestPayloadValidationErrorCustomStatusCode()
696725
{
697726
$content ='{"price": 50, "title": ["not a string"]}';
698-
$serializer =newSerializer([newObjectNormalizer()], ['json' =>newJsonEncoder()]);
727+
$serializer =newSerializer([], ['json' =>newJsonEncoder()],newChainNormalizer([newObjectNormalizer()]),newChainDenormalizer([newObjectNormalizer()]));
699728

700729
$validator =$this->createMock(ValidatorInterface::class);
701730
$validator->expects($this->never())

‎src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/AmazonSqsReceiverTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ private function createSqsEnvelope()
6868
privatefunctioncreateSerializer():Serializer
6969
{
7070
$serializer =newSerializer(
71-
newSerializerComponent\Serializer([newObjectNormalizer()], ['json' =>newJsonEncoder()])
71+
newSerializerComponent\Serializer([], ['json' =>newJsonEncoder()],newObjectNormalizer(),newObjectNormalizer())
7272
);
7373

7474
return$serializer;

‎src/Symfony/Component/Messenger/Bridge/AmazonSqs/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
"require-dev": {
2727
"symfony/http-client-contracts":"^2.5|^3",
2828
"symfony/property-access":"^6.4|^7.0",
29-
"symfony/serializer":"^6.4|^7.0"
29+
"symfony/serializer":"^7.1"
3030
},
3131
"conflict": {
3232
"symfony/http-client-contracts":"<2.5"

‎src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Fixtures/long_receiver.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
useSymfony\Component\Serializer\Normalizer\ObjectNormalizer;
2727

2828
$serializer =newSerializer(
29-
newSerializerComponent\Serializer([newObjectNormalizer(),newArrayDenormalizer()], ['json' =>newJsonEncoder()])
29+
newSerializerComponent\Serializer([], ['json' =>newJsonEncoder()],newObjectNormalizer(),newSerializerComponent\Normalizer\ChainDenormalizer([newObjectNormalizer(),newArrayDenormalizer()]))
3030
);
3131

3232
$connection = Connection::fromDsn(getenv('DSN'));

‎src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpExtIntegrationTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ private function waitForOutput(Process $process, string $output, $timeoutInSecon
262262
privatefunctioncreateSerializer():SerializerInterface
263263
{
264264
returnnewSerializer(
265-
newSerializerComponent\Serializer([newObjectNormalizer(),newArrayDenormalizer()], ['json' =>newJsonEncoder()])
265+
newSerializerComponent\Serializer([], ['json' =>newJsonEncoder()],newObjectNormalizer(),newSerializerComponent\Normalizer\ChainDenormalizer([newObjectNormalizer(),newArrayDenormalizer()]))
266266
);
267267
}
268268

‎src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Transport/AmqpReceiverTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class AmqpReceiverTest extends TestCase
3232
publicfunctiontestItReturnsTheDecodedMessageToTheHandler()
3333
{
3434
$serializer =newSerializer(
35-
newSerializerComponent\Serializer([newObjectNormalizer()], ['json' =>newJsonEncoder()])
35+
newSerializerComponent\Serializer([], ['json' =>newJsonEncoder()],newObjectNormalizer(),newObjectNormalizer())
3636
);
3737

3838
$amqpEnvelope =$this->createAMQPEnvelope();

‎src/Symfony/Component/Messenger/Bridge/Amqp/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
"symfony/event-dispatcher":"^6.4|^7.0",
2525
"symfony/process":"^6.4|^7.0",
2626
"symfony/property-access":"^6.4|^7.0",
27-
"symfony/serializer":"^6.4|^7.0"
27+
"symfony/serializer":"^7.1"
2828
},
2929
"autoload": {
3030
"psr-4": {"Symfony\\Component\\Messenger\\Bridge\\Amqp\\":"" },

‎src/Symfony/Component/Messenger/Bridge/Beanstalkd/Tests/Transport/BeanstalkdReceiverTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ private function createBeanstalkdEnvelope(): array
9292
privatefunctioncreateSerializer():Serializer
9393
{
9494
$serializer =newSerializer(
95-
newSerializerComponent\Serializer([newObjectNormalizer()], ['json' =>newJsonEncoder()])
95+
newSerializerComponent\Serializer([], ['json' =>newJsonEncoder()],newObjectNormalizer(),newObjectNormalizer())
9696
);
9797

9898
return$serializer;

‎src/Symfony/Component/Messenger/Bridge/Beanstalkd/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
},
1919
"require-dev": {
2020
"symfony/property-access":"^6.4|^7.0",
21-
"symfony/serializer":"^6.4|^7.0"
21+
"symfony/serializer":"^7.1"
2222
},
2323
"autoload": {
2424
"psr-4": {"Symfony\\Component\\Messenger\\Bridge\\Beanstalkd\\":"" },

‎src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/DoctrineReceiverTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ private function createDoctrineEnvelope(): array
133133
privatefunctioncreateSerializer():Serializer
134134
{
135135
$serializer =newSerializer(
136-
newSerializerComponent\Serializer([newObjectNormalizer()], ['json' =>newJsonEncoder()])
136+
newSerializerComponent\Serializer([], ['json' =>newJsonEncoder()],newObjectNormalizer(),newObjectNormalizer())
137137
);
138138

139139
return$serializer;

‎src/Symfony/Component/Messenger/Bridge/Doctrine/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
"require-dev": {
2525
"doctrine/persistence":"^1.3|^2|^3",
2626
"symfony/property-access":"^6.4|^7.0",
27-
"symfony/serializer":"^6.4|^7.0"
27+
"symfony/serializer":"^7.1"
2828
},
2929
"conflict": {
3030
"doctrine/persistence":"<1.3"

‎src/Symfony/Component/Messenger/Bridge/Redis/Tests/Transport/RedisReceiverTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public static function redisEnvelopeProvider(): \Generator
7575
],
7676
newDummyMessage('Hi'),
7777
newSerializer(
78-
newSerializerComponent\Serializer([newObjectNormalizer()], ['json' =>newJsonEncoder()])
78+
newSerializerComponent\Serializer([], ['json' =>newJsonEncoder()],newObjectNormalizer(),newObjectNormalizer())
7979
),
8080
];
8181

‎src/Symfony/Component/Messenger/Bridge/Redis/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
},
2323
"require-dev": {
2424
"symfony/property-access":"^6.4|^7.0",
25-
"symfony/serializer":"^6.4|^7.0"
25+
"symfony/serializer":"^7.1"
2626
},
2727
"autoload": {
2828
"psr-4": {"Symfony\\Component\\Messenger\\Bridge\\Redis\\":"" },

‎src/Symfony/Component/Messenger/Tests/Stamp/ErrorDetailsStampTest.php

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
useSymfony\Component\Messenger\Transport\Serialization\Serializer;
2121
useSymfony\Component\Serializer\Encoder\JsonEncoder;
2222
useSymfony\Component\Serializer\Normalizer\ArrayDenormalizer;
23+
useSymfony\Component\Serializer\Normalizer\ChainDenormalizer;
24+
useSymfony\Component\Serializer\Normalizer\ChainNormalizer;
2325
useSymfony\Component\Serializer\Normalizer\ObjectNormalizer;
2426
useSymfony\Component\Serializer\SerializerasSymfonySerializer;
2527

@@ -57,11 +59,12 @@ public function testDeserialization()
5759
$exception =new \Exception('exception message');
5860
$stamp = ErrorDetailsStamp::create($exception);
5961
$serializer =newSerializer(
60-
newSymfonySerializer([
61-
newArrayDenormalizer(),
62-
newFlattenExceptionNormalizer(),
63-
newObjectNormalizer(),
64-
], [newJsonEncoder()])
62+
newSymfonySerializer(
63+
[],
64+
[newJsonEncoder()],
65+
newChainNormalizer([newFlattenExceptionNormalizer(),newObjectNormalizer()]),
66+
newChainDenormalizer([newArrayDenormalizer(),newFlattenExceptionNormalizer(),newObjectNormalizer()])
67+
)
6568
);
6669

6770
$deserializedEnvelope =$serializer->decode($serializer->encode(newEnvelope(new \stdClass(), [$stamp])));

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp