From d617a95c1de3327eb9538ef214724f533f6761ff Mon Sep 17 00:00:00 2001 From: Augustin Pasquini Date: Wed, 19 Nov 2025 15:34:05 +0100 Subject: [PATCH 01/21] Update symfony/serializer version constraint --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index dd0012f..3954b86 100644 --- a/composer.json +++ b/composer.json @@ -27,7 +27,7 @@ "require": { "php": "^8.2", "symfony/framework-bundle": "^5.0|^6.0|^7.0", - "symfony/serializer": "^5.1.8|^6.0", + "symfony/serializer": "^5.1.8|^6.0|^7.0", "beberlei/assert": "^3.2.7" }, "config": { From 7357cb9a8322564aa8f1e3a8c4112f2ee532a484 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 1 Dec 2025 08:11:48 +0100 Subject: [PATCH 02/21] Update AbsolutePercentValueNormalizer.php --- src/Normalizer/AbsolutePercentValueNormalizer.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Normalizer/AbsolutePercentValueNormalizer.php b/src/Normalizer/AbsolutePercentValueNormalizer.php index 570967a..b137886 100644 --- a/src/Normalizer/AbsolutePercentValueNormalizer.php +++ b/src/Normalizer/AbsolutePercentValueNormalizer.php @@ -39,8 +39,9 @@ public function normalize($object, string $format = null, array $context = []): /** * @param mixed $data + * @param array $context */ - public function supportsNormalization($data, string $format = null): bool + public function supportsNormalization($data, string $format = null, array $context = []): bool { return $data instanceof AbsolutePercentValue; } @@ -65,8 +66,9 @@ public function denormalize($data, string $type, string $format = null, array $c /** * @param mixed $data + * @param array $context */ - public function supportsDenormalization($data, string $type, string $format = null): bool + public function supportsDenormalization($data, string $type, string $format = null, array $context = []): bool { return $type === AbsolutePercentValue::class; } From 08a53fc9399829c3fdf0c329796c99a47bc4affb Mon Sep 17 00:00:00 2001 From: Sylvain Fabre Date: Mon, 1 Dec 2025 17:46:42 +0100 Subject: [PATCH 03/21] Add getSupportedTypes() --- src/Normalizer/AbsolutePercentValueNormalizer.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Normalizer/AbsolutePercentValueNormalizer.php b/src/Normalizer/AbsolutePercentValueNormalizer.php index b137886..9016841 100644 --- a/src/Normalizer/AbsolutePercentValueNormalizer.php +++ b/src/Normalizer/AbsolutePercentValueNormalizer.php @@ -72,4 +72,12 @@ public function supportsDenormalization($data, string $type, string $format = nu { return $type === AbsolutePercentValue::class; } + + /** + * @return array + */ + public function getSupportedTypes(?string $format): array + { + return [AbsolutePercentValue::class => false]; + } } From 9ac58bc9d2696cd502c6198704560df25b0966ba Mon Sep 17 00:00:00 2001 From: Augustin Pasquini Date: Fri, 5 Dec 2025 17:35:28 +0100 Subject: [PATCH 04/21] Update of normalizer signature --- src/Normalizer/AbsolutePercentValueNormalizer.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Normalizer/AbsolutePercentValueNormalizer.php b/src/Normalizer/AbsolutePercentValueNormalizer.php index 9016841..a640e7c 100644 --- a/src/Normalizer/AbsolutePercentValueNormalizer.php +++ b/src/Normalizer/AbsolutePercentValueNormalizer.php @@ -22,7 +22,7 @@ class AbsolutePercentValueNormalizer implements NormalizerInterface, Denormalize * @return mixed[] * @throws InvalidArgumentException */ - public function normalize($object, string $format = null, array $context = []): array + public function normalize(mixed $object, ?string $format = null, array $context = []): array { if (!$object instanceof AbsolutePercentValue) { throw new InvalidArgumentException(sprintf( @@ -41,7 +41,7 @@ public function normalize($object, string $format = null, array $context = []): * @param mixed $data * @param array $context */ - public function supportsNormalization($data, string $format = null, array $context = []): bool + public function supportsNormalization(mixed $data, ?string $format = null, array $context = []): bool { return $data instanceof AbsolutePercentValue; } @@ -52,7 +52,7 @@ public function supportsNormalization($data, string $format = null, array $conte * * @throws NotNormalizableValueException */ - public function denormalize($data, string $type, string $format = null, array $context = []): ?AbsolutePercentValue + public function denormalize(mixed $data, string $type, ?string $format = null, array $context = []): ?AbsolutePercentValue { try { if ('' === $data || null === $data) { @@ -68,7 +68,7 @@ public function denormalize($data, string $type, string $format = null, array $c * @param mixed $data * @param array $context */ - public function supportsDenormalization($data, string $type, string $format = null, array $context = []): bool + public function supportsDenormalization(mixed $data, string $type, ?string $format = null, array $context = []): bool { return $type === AbsolutePercentValue::class; } From b703e14bebb937dbe1eaee76bb3b36daa25bbc49 Mon Sep 17 00:00:00 2001 From: Mathieu Bourlet Date: Thu, 18 Dec 2025 10:35:48 +0100 Subject: [PATCH 05/21] Fix CI --- src/Normalizer/AbsolutePercentValueNormalizer.php | 10 +++++++--- .../AbsolutePercentValueNormalizerTest.php | 14 ++++---------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/Normalizer/AbsolutePercentValueNormalizer.php b/src/Normalizer/AbsolutePercentValueNormalizer.php index a640e7c..95dc3eb 100644 --- a/src/Normalizer/AbsolutePercentValueNormalizer.php +++ b/src/Normalizer/AbsolutePercentValueNormalizer.php @@ -52,11 +52,15 @@ public function supportsNormalization(mixed $data, ?string $format = null, array * * @throws NotNormalizableValueException */ - public function denormalize(mixed $data, string $type, ?string $format = null, array $context = []): ?AbsolutePercentValue - { + public function denormalize( + mixed $data, + string $type, + ?string $format = null, + array $context = [] + ): AbsolutePercentValue { try { if ('' === $data || null === $data) { - return null; + throw new NotNormalizableValueException(); } return new AbsolutePercentValue($data['type'], $data['value']); } catch (\Exception $e) { diff --git a/tests/Normalizer/AbsolutePercentValueNormalizerTest.php b/tests/Normalizer/AbsolutePercentValueNormalizerTest.php index 0c0e426..fb9ce0a 100644 --- a/tests/Normalizer/AbsolutePercentValueNormalizerTest.php +++ b/tests/Normalizer/AbsolutePercentValueNormalizerTest.php @@ -65,10 +65,10 @@ public function testSupportsDenormalization(string $type, bool $result): void /** * @dataProvider providerTestDenormalize */ - public function testDenormalizeNull(?string $data): void + public function testDenormalizeFailure(mixed $data): void { - $value = $this->valueNormalizer->denormalize($data, AbsolutePercentValue::class); - self::assertNull($value); + $this->expectException(NotNormalizableValueException::class); + $this->valueNormalizer->denormalize($data, AbsolutePercentValue::class); } /** @return iterable */ @@ -76,6 +76,7 @@ public function providerTestDenormalize(): iterable { yield ['']; yield [null]; + yield [['type' => AbsolutePercentValue::TYPE_ABSOLUTE]]; } public function testDenormalizeSuccess(): void @@ -87,11 +88,4 @@ public function testDenormalizeSuccess(): void self::assertSame($data['type'], $value->getType()); self::assertSame($data['value'], $value->getValue()); } - - public function testDenormalizeFailure(): void - { - $data = ['type' => AbsolutePercentValue::TYPE_ABSOLUTE]; - $this->expectException(NotNormalizableValueException::class); - $this->valueNormalizer->denormalize($data, AbsolutePercentValue::class); - } } From e2484af91006218687a054052529297227e9a5ef Mon Sep 17 00:00:00 2001 From: Mathieu Bourlet Date: Thu, 18 Dec 2025 10:37:26 +0100 Subject: [PATCH 06/21] Fix CI --- tests/Normalizer/AbsolutePercentValueNormalizerTest.php | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/Normalizer/AbsolutePercentValueNormalizerTest.php b/tests/Normalizer/AbsolutePercentValueNormalizerTest.php index fb9ce0a..c3289bb 100644 --- a/tests/Normalizer/AbsolutePercentValueNormalizerTest.php +++ b/tests/Normalizer/AbsolutePercentValueNormalizerTest.php @@ -84,7 +84,6 @@ public function testDenormalizeSuccess(): void $data = ['type' => AbsolutePercentValue::TYPE_ABSOLUTE, 'value' => '2000']; $value = $this->valueNormalizer->denormalize($data, AbsolutePercentValue::class); - self::assertNotNull($value); self::assertSame($data['type'], $value->getType()); self::assertSame($data['value'], $value->getValue()); } From 295fdf0de263921707bf92ef5c65b0c7658bf4db Mon Sep 17 00:00:00 2001 From: Mathieu Bourlet Date: Thu, 18 Dec 2025 10:43:20 +0100 Subject: [PATCH 07/21] Fix CI --- src/Normalizer/AbsolutePercentValueNormalizer.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Normalizer/AbsolutePercentValueNormalizer.php b/src/Normalizer/AbsolutePercentValueNormalizer.php index 95dc3eb..3d3ccaf 100644 --- a/src/Normalizer/AbsolutePercentValueNormalizer.php +++ b/src/Normalizer/AbsolutePercentValueNormalizer.php @@ -47,6 +47,7 @@ public function supportsNormalization(mixed $data, ?string $format = null, array } /** + * @implements DenormalizerInterface * @param mixed $data * @param array $context * @@ -72,8 +73,12 @@ public function denormalize( * @param mixed $data * @param array $context */ - public function supportsDenormalization(mixed $data, string $type, ?string $format = null, array $context = []): bool - { + public function supportsDenormalization( + mixed $data, + string $type, + ?string $format = null, + array $context = [] + ): bool { return $type === AbsolutePercentValue::class; } From 72e1fd1c28b17e535becaa5d32a97e678270e166 Mon Sep 17 00:00:00 2001 From: Mathieu Bourlet Date: Thu, 18 Dec 2025 10:50:01 +0100 Subject: [PATCH 08/21] Fix CI --- src/Normalizer/AbsolutePercentValueNormalizer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Normalizer/AbsolutePercentValueNormalizer.php b/src/Normalizer/AbsolutePercentValueNormalizer.php index 3d3ccaf..335cce0 100644 --- a/src/Normalizer/AbsolutePercentValueNormalizer.php +++ b/src/Normalizer/AbsolutePercentValueNormalizer.php @@ -47,8 +47,8 @@ public function supportsNormalization(mixed $data, ?string $format = null, array } /** - * @implements DenormalizerInterface * @param mixed $data + * @param class-string * @param array $context * * @throws NotNormalizableValueException From 2e2e983d8bbd5d4e750183a4b3aa190ab347fdd5 Mon Sep 17 00:00:00 2001 From: Mathieu Bourlet Date: Thu, 18 Dec 2025 10:51:13 +0100 Subject: [PATCH 09/21] Fix CI --- src/Normalizer/AbsolutePercentValueNormalizer.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Normalizer/AbsolutePercentValueNormalizer.php b/src/Normalizer/AbsolutePercentValueNormalizer.php index 335cce0..458378c 100644 --- a/src/Normalizer/AbsolutePercentValueNormalizer.php +++ b/src/Normalizer/AbsolutePercentValueNormalizer.php @@ -48,7 +48,7 @@ public function supportsNormalization(mixed $data, ?string $format = null, array /** * @param mixed $data - * @param class-string + * @param class-string $type * @param array $context * * @throws NotNormalizableValueException @@ -63,7 +63,7 @@ public function denormalize( if ('' === $data || null === $data) { throw new NotNormalizableValueException(); } - return new AbsolutePercentValue($data['type'], $data['value']); + return new AbsolutePercentValue($data['type'], $data['value']); } catch (\Exception $e) { throw new NotNormalizableValueException($e->getMessage(), $e->getCode(), $e); } From 6345de932e5ea32e76285bd684b4aa161213831c Mon Sep 17 00:00:00 2001 From: Mathieu Bourlet Date: Thu, 18 Dec 2025 10:52:54 +0100 Subject: [PATCH 10/21] Fix CI --- src/Normalizer/AbsolutePercentValueNormalizer.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Normalizer/AbsolutePercentValueNormalizer.php b/src/Normalizer/AbsolutePercentValueNormalizer.php index 458378c..d55e536 100644 --- a/src/Normalizer/AbsolutePercentValueNormalizer.php +++ b/src/Normalizer/AbsolutePercentValueNormalizer.php @@ -48,7 +48,6 @@ public function supportsNormalization(mixed $data, ?string $format = null, array /** * @param mixed $data - * @param class-string $type * @param array $context * * @throws NotNormalizableValueException From 035f597540a81902df29c9551c0c3e54a949c119 Mon Sep 17 00:00:00 2001 From: Mathieu Bourlet Date: Thu, 18 Dec 2025 10:55:07 +0100 Subject: [PATCH 11/21] Fix CI --- src/Normalizer/AbsolutePercentValueNormalizer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Normalizer/AbsolutePercentValueNormalizer.php b/src/Normalizer/AbsolutePercentValueNormalizer.php index d55e536..1d50ae7 100644 --- a/src/Normalizer/AbsolutePercentValueNormalizer.php +++ b/src/Normalizer/AbsolutePercentValueNormalizer.php @@ -57,7 +57,7 @@ public function denormalize( string $type, ?string $format = null, array $context = [] - ): AbsolutePercentValue { + ): mixed { try { if ('' === $data || null === $data) { throw new NotNormalizableValueException(); From d250bc3ecffe0adf9d0a7c73f710be37ea681b42 Mon Sep 17 00:00:00 2001 From: Mathieu Bourlet Date: Thu, 18 Dec 2025 10:57:52 +0100 Subject: [PATCH 12/21] Fix CI --- src/Normalizer/AbsolutePercentValueNormalizer.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Normalizer/AbsolutePercentValueNormalizer.php b/src/Normalizer/AbsolutePercentValueNormalizer.php index 1d50ae7..06ed191 100644 --- a/src/Normalizer/AbsolutePercentValueNormalizer.php +++ b/src/Normalizer/AbsolutePercentValueNormalizer.php @@ -47,9 +47,14 @@ public function supportsNormalization(mixed $data, ?string $format = null, array } /** + * @template TObject of object + * * @param mixed $data + * @param class-string $type * @param array $context * + * @return TObject + * * @throws NotNormalizableValueException */ public function denormalize( From 750c43614b1932f95cee211bb5ba0df1aa5d1d70 Mon Sep 17 00:00:00 2001 From: Mathieu Bourlet Date: Thu, 18 Dec 2025 11:01:05 +0100 Subject: [PATCH 13/21] Fix CI --- src/Normalizer/AbsolutePercentValueNormalizer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Normalizer/AbsolutePercentValueNormalizer.php b/src/Normalizer/AbsolutePercentValueNormalizer.php index 06ed191..6e06d00 100644 --- a/src/Normalizer/AbsolutePercentValueNormalizer.php +++ b/src/Normalizer/AbsolutePercentValueNormalizer.php @@ -67,7 +67,7 @@ public function denormalize( if ('' === $data || null === $data) { throw new NotNormalizableValueException(); } - return new AbsolutePercentValue($data['type'], $data['value']); + return new $type($data['type'], $data['value']); } catch (\Exception $e) { throw new NotNormalizableValueException($e->getMessage(), $e->getCode(), $e); } From 49c593128825122ac113d0167bfd21f0cdc51e6c Mon Sep 17 00:00:00 2001 From: Mathieu Bourlet Date: Thu, 18 Dec 2025 11:05:32 +0100 Subject: [PATCH 14/21] Fix CI --- src/Normalizer/AbsolutePercentValueNormalizer.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Normalizer/AbsolutePercentValueNormalizer.php b/src/Normalizer/AbsolutePercentValueNormalizer.php index 6e06d00..9ce1f63 100644 --- a/src/Normalizer/AbsolutePercentValueNormalizer.php +++ b/src/Normalizer/AbsolutePercentValueNormalizer.php @@ -63,6 +63,8 @@ public function denormalize( ?string $format = null, array $context = [] ): mixed { + assert($type === AbsolutePercentValue::class); + try { if ('' === $data || null === $data) { throw new NotNormalizableValueException(); From eb07f20816c135a76afcd01f8b5bc53636edb33b Mon Sep 17 00:00:00 2001 From: Mathieu Bourlet Date: Thu, 18 Dec 2025 11:07:47 +0100 Subject: [PATCH 15/21] Fix CI --- src/Normalizer/AbsolutePercentValueNormalizer.php | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/Normalizer/AbsolutePercentValueNormalizer.php b/src/Normalizer/AbsolutePercentValueNormalizer.php index 9ce1f63..85cc594 100644 --- a/src/Normalizer/AbsolutePercentValueNormalizer.php +++ b/src/Normalizer/AbsolutePercentValueNormalizer.php @@ -47,14 +47,6 @@ public function supportsNormalization(mixed $data, ?string $format = null, array } /** - * @template TObject of object - * - * @param mixed $data - * @param class-string $type - * @param array $context - * - * @return TObject - * * @throws NotNormalizableValueException */ public function denormalize( From 178cee7e77883eeba785a051908539c0154eef06 Mon Sep 17 00:00:00 2001 From: Mathieu Bourlet Date: Thu, 18 Dec 2025 11:09:06 +0100 Subject: [PATCH 16/21] Fix CI --- src/Normalizer/AbsolutePercentValueNormalizer.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Normalizer/AbsolutePercentValueNormalizer.php b/src/Normalizer/AbsolutePercentValueNormalizer.php index 85cc594..cab2de3 100644 --- a/src/Normalizer/AbsolutePercentValueNormalizer.php +++ b/src/Normalizer/AbsolutePercentValueNormalizer.php @@ -55,8 +55,6 @@ public function denormalize( ?string $format = null, array $context = [] ): mixed { - assert($type === AbsolutePercentValue::class); - try { if ('' === $data || null === $data) { throw new NotNormalizableValueException(); From b841aa6c928ea50218d11902706421c3ca239f7b Mon Sep 17 00:00:00 2001 From: Mathieu Bourlet Date: Thu, 18 Dec 2025 11:14:49 +0100 Subject: [PATCH 17/21] Fix CI --- src/Normalizer/AbsolutePercentValueNormalizer.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Normalizer/AbsolutePercentValueNormalizer.php b/src/Normalizer/AbsolutePercentValueNormalizer.php index cab2de3..9b29a35 100644 --- a/src/Normalizer/AbsolutePercentValueNormalizer.php +++ b/src/Normalizer/AbsolutePercentValueNormalizer.php @@ -47,6 +47,7 @@ public function supportsNormalization(mixed $data, ?string $format = null, array } /** + * @implements DenormalizerInterface::denormalize * @throws NotNormalizableValueException */ public function denormalize( @@ -54,12 +55,12 @@ public function denormalize( string $type, ?string $format = null, array $context = [] - ): mixed { + ) { try { if ('' === $data || null === $data) { throw new NotNormalizableValueException(); } - return new $type($data['type'], $data['value']); + return new AbsolutePercentValue($data['type'], $data['value']); } catch (\Exception $e) { throw new NotNormalizableValueException($e->getMessage(), $e->getCode(), $e); } From e27c9fd54971e7347d63afa2f620d181ed22e615 Mon Sep 17 00:00:00 2001 From: Mathieu Bourlet Date: Thu, 18 Dec 2025 11:16:09 +0100 Subject: [PATCH 18/21] Fix CI --- src/Normalizer/AbsolutePercentValueNormalizer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Normalizer/AbsolutePercentValueNormalizer.php b/src/Normalizer/AbsolutePercentValueNormalizer.php index 9b29a35..e3f1dbb 100644 --- a/src/Normalizer/AbsolutePercentValueNormalizer.php +++ b/src/Normalizer/AbsolutePercentValueNormalizer.php @@ -55,7 +55,7 @@ public function denormalize( string $type, ?string $format = null, array $context = [] - ) { + ): AbsolutePercentValue { try { if ('' === $data || null === $data) { throw new NotNormalizableValueException(); From fc6d4c180b0fd6ef470a78ac681a5802714ed129 Mon Sep 17 00:00:00 2001 From: Mathieu Bourlet Date: Thu, 18 Dec 2025 11:23:04 +0100 Subject: [PATCH 19/21] Fix CI --- src/Normalizer/AbsolutePercentValueNormalizer.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Normalizer/AbsolutePercentValueNormalizer.php b/src/Normalizer/AbsolutePercentValueNormalizer.php index e3f1dbb..3d941c0 100644 --- a/src/Normalizer/AbsolutePercentValueNormalizer.php +++ b/src/Normalizer/AbsolutePercentValueNormalizer.php @@ -47,7 +47,8 @@ public function supportsNormalization(mixed $data, ?string $format = null, array } /** - * @implements DenormalizerInterface::denormalize + * @param class-string $type + * @return AbsolutePercentValue * @throws NotNormalizableValueException */ public function denormalize( @@ -55,7 +56,7 @@ public function denormalize( string $type, ?string $format = null, array $context = [] - ): AbsolutePercentValue { + ): mixed { try { if ('' === $data || null === $data) { throw new NotNormalizableValueException(); From 2370e8b48f9677bff2adfd619502a5ab955a4883 Mon Sep 17 00:00:00 2001 From: Mathieu Bourlet Date: Thu, 18 Dec 2025 11:29:29 +0100 Subject: [PATCH 20/21] Fix CI --- src/Normalizer/AbsolutePercentValueNormalizer.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Normalizer/AbsolutePercentValueNormalizer.php b/src/Normalizer/AbsolutePercentValueNormalizer.php index 3d941c0..433059d 100644 --- a/src/Normalizer/AbsolutePercentValueNormalizer.php +++ b/src/Normalizer/AbsolutePercentValueNormalizer.php @@ -47,8 +47,7 @@ public function supportsNormalization(mixed $data, ?string $format = null, array } /** - * @param class-string $type - * @return AbsolutePercentValue + * @phpstan-ignore float.type * @throws NotNormalizableValueException */ public function denormalize( From bb01e33ce2f24efa4feedba5238392c4c71a9181 Mon Sep 17 00:00:00 2001 From: Mathieu Bourlet Date: Thu, 18 Dec 2025 14:05:58 +0100 Subject: [PATCH 21/21] Fix CI --- src/Normalizer/AbsolutePercentValueNormalizer.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Normalizer/AbsolutePercentValueNormalizer.php b/src/Normalizer/AbsolutePercentValueNormalizer.php index 433059d..37039ca 100644 --- a/src/Normalizer/AbsolutePercentValueNormalizer.php +++ b/src/Normalizer/AbsolutePercentValueNormalizer.php @@ -47,7 +47,6 @@ public function supportsNormalization(mixed $data, ?string $format = null, array } /** - * @phpstan-ignore float.type * @throws NotNormalizableValueException */ public function denormalize(