From d8a03d1372c61e3814ea50019fd3b6ac0cb61639 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Sat, 28 Oct 2023 13:29:36 +0200 Subject: [PATCH] throw better exception in TranslatableNormalizer, add to changelog --- src/Symfony/Component/Serializer/CHANGELOG.md | 1 + .../Component/Serializer/Normalizer/TranslatableNormalizer.php | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Serializer/CHANGELOG.md b/src/Symfony/Component/Serializer/CHANGELOG.md index fdefebdc07e58..56ed3863c4c79 100644 --- a/src/Symfony/Component/Serializer/CHANGELOG.md +++ b/src/Symfony/Component/Serializer/CHANGELOG.md @@ -4,6 +4,7 @@ CHANGELOG 6.4 --- + * Add `TranslatableNormalizer` * Allow `Context` attribute to target classes * Deprecate Doctrine annotations support in favor of native attributes * Allow the `Groups` attribute/annotation on classes diff --git a/src/Symfony/Component/Serializer/Normalizer/TranslatableNormalizer.php b/src/Symfony/Component/Serializer/Normalizer/TranslatableNormalizer.php index b79a0ffb99488..a4aef51f8cea9 100644 --- a/src/Symfony/Component/Serializer/Normalizer/TranslatableNormalizer.php +++ b/src/Symfony/Component/Serializer/Normalizer/TranslatableNormalizer.php @@ -12,6 +12,7 @@ namespace Symfony\Component\Serializer\Normalizer; use Symfony\Component\Serializer\Exception\InvalidArgumentException; +use Symfony\Component\Serializer\Exception\NotNormalizableValueException; use Symfony\Contracts\Translation\TranslatableInterface; use Symfony\Contracts\Translation\TranslatorInterface; @@ -36,7 +37,7 @@ public function __construct( public function normalize(mixed $object, string $format = null, array $context = []): string { if (!$object instanceof TranslatableInterface) { - throw new InvalidArgumentException(sprintf('The object must implement the "%s".', TranslatableInterface::class)); + throw NotNormalizableValueException::createForUnexpectedDataType(sprintf('The object must implement the "%s".', TranslatableInterface::class), $object, [TranslatableInterface::class]); } return $object->trans($this->translator, $context[self::NORMALIZATION_LOCALE_KEY] ?? $this->defaultContext[self::NORMALIZATION_LOCALE_KEY]);