From dae3726d3de90648973e750b4102b8a1582f6299 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Fri, 5 Apr 2024 23:47:04 +0200 Subject: [PATCH] initialize serializer in trait with null --- .../Component/Serializer/SerializerAwareTrait.php | 2 +- .../Tests/Normalizer/ObjectNormalizerTest.php | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Serializer/SerializerAwareTrait.php b/src/Symfony/Component/Serializer/SerializerAwareTrait.php index e4ba0ecb9c225..495e5889ce818 100644 --- a/src/Symfony/Component/Serializer/SerializerAwareTrait.php +++ b/src/Symfony/Component/Serializer/SerializerAwareTrait.php @@ -16,7 +16,7 @@ */ trait SerializerAwareTrait { - protected SerializerInterface $serializer; + protected ?SerializerInterface $serializer = null; public function setSerializer(SerializerInterface $serializer): void { diff --git a/src/Symfony/Component/Serializer/Tests/Normalizer/ObjectNormalizerTest.php b/src/Symfony/Component/Serializer/Tests/Normalizer/ObjectNormalizerTest.php index 8285dd88ee22b..740accd8fedac 100644 --- a/src/Symfony/Component/Serializer/Tests/Normalizer/ObjectNormalizerTest.php +++ b/src/Symfony/Component/Serializer/Tests/Normalizer/ObjectNormalizerTest.php @@ -885,6 +885,16 @@ public function testSamePropertyAsMethodWithMethodSerializedName() $this->assertSame($expected, $this->normalizer->normalize($object)); } + + public function testNormalizeWithoutSerializerSet() + { + $normalizer = new ObjectNormalizer(new ClassMetadataFactory(new AttributeLoader())); + + $this->expectException(LogicException::class); + $this->expectExceptionMessage('Cannot normalize attribute "foo" because the injected serializer is not a normalizer.'); + + $normalizer->normalize(new ObjectConstructorDummy([], [], [])); + } } class ProxyObjectDummy extends ObjectDummy pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy