2020use ServiceBus \MessageSerializer \MessageDecoder ;
2121use ServiceBus \MessageSerializer \MessageEncoder ;
2222use ServiceBus \MessageSerializer \Serializer ;
23+ use ServiceBus \MessageSerializer \Symfony \Extractor \FailOverExtractor ;
2324use ServiceBus \MessageSerializer \SymfonyNormalizer \Extensions \EmptyDataNormalizer ;
2425use ServiceBus \MessageSerializer \SymfonyNormalizer \Extensions \PropertyNameConverter ;
2526use ServiceBus \MessageSerializer \SymfonyNormalizer \Extensions \PropertyNormalizerWrapper ;
26- use Symfony \Component \PropertyInfo \Extractor \PhpDocExtractor ;
27+ use Symfony \Component \PropertyInfo \Extractor \ReflectionExtractor ;
2728use Symfony \Component \Serializer as SymfonySerializer ;
29+ use Symfony \Component \Serializer \Normalizer \DateTimeNormalizer ;
2830
2931/**
3032 *
@@ -47,9 +49,9 @@ final class SymfonyMessageSerializer implements MessageEncoder, MessageDecoder
4749 public function __construct (Serializer $ serializer = null , array $ normalizers = [])
4850 {
4951 $ defaultNormalizers = [
50- new SymfonySerializer \ Normalizer \ DateTimeNormalizer (['datetime_format ' => 'c ' ]),
52+ new DateTimeNormalizer (['datetime_format ' => 'c ' ]),
5153 new SymfonySerializer \Normalizer \ArrayDenormalizer (),
52- new PropertyNormalizerWrapper (null , new PropertyNameConverter (), new PhpDocExtractor ()),
54+ new PropertyNormalizerWrapper (null , new PropertyNameConverter (), new FailOverExtractor ()),
5355 new EmptyDataNormalizer (),
5456 ];
5557
@@ -71,7 +73,7 @@ public function encode(object $message): string
7173
7274 return $ this ->serializer ->serialize ($ data );
7375 }
74- catch (\Throwable $ throwable )
76+ catch (\Throwable $ throwable )
7577 {
7678 throw new EncodeMessageFailed ($ throwable ->getMessage (), (int ) $ throwable ->getCode (), $ throwable );
7779 }
@@ -94,7 +96,7 @@ public function decode(string $serializedMessage): object
9496
9597 return $ object ;
9698 }
97- catch (\Throwable $ throwable )
99+ catch (\Throwable $ throwable )
98100 {
99101 throw new DecodeMessageFailed ($ throwable ->getMessage (), (int ) $ throwable ->getCode (), $ throwable );
100102 }
@@ -115,7 +117,7 @@ public function denormalize(array $payload, string $class): object
115117
116118 return $ object ;
117119 }
118- catch (\Throwable $ throwable )
120+ catch (\Throwable $ throwable )
119121 {
120122 throw new DenormalizeFailed ($ throwable ->getMessage (), (int ) $ throwable ->getCode (), $ throwable );
121123 }
@@ -130,7 +132,7 @@ public function normalize(object $message): array
130132 {
131133 $ data = $ this ->normalizer ->normalize ($ message );
132134
133- if (true === \is_array ($ data ))
135+ if (true === \is_array ($ data ))
134136 {
135137 /** @psalm-var array<string, mixed> $data */
136138
@@ -147,7 +149,7 @@ public function normalize(object $message): array
147149 );
148150 // @codeCoverageIgnoreEnd
149151 }
150- catch (\Throwable $ throwable )
152+ catch (\Throwable $ throwable )
151153 {
152154 throw new NormalizationFailed ($ throwable ->getMessage (), (int ) $ throwable ->getCode (), $ throwable );
153155 }
@@ -161,10 +163,11 @@ public function normalize(object $message): array
161163 private static function validateUnserializedData (array $ data ): void
162164 {
163165 /** Let's check if there are mandatory fields */
164- if (
166+ if (
165167 false === isset ($ data ['namespace ' ]) ||
166168 false === isset ($ data ['message ' ])
167- ) {
169+ )
170+ {
168171 throw new \UnexpectedValueException (
169172 'The serialized data must contains a "namespace" field (indicates the message class) and "message" (indicates the message parameters) '
170173 );
@@ -175,7 +178,7 @@ private static function validateUnserializedData(array $data): void
175178 *
176179 * @psalm-suppress DocblockTypeContradiction
177180 */
178- if ('' === $ data ['namespace ' ] || false === \class_exists ((string ) $ data ['namespace ' ]))
181+ if ('' === $ data ['namespace ' ] || false === \class_exists ((string ) $ data ['namespace ' ]))
179182 {
180183 throw new \UnexpectedValueException (
181184 \sprintf ('Class "%s" not found ' , $ data ['namespace ' ])
0 commit comments