diff --git a/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md b/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md index a93baaed07..f046415bb9 100644 --- a/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md +++ b/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md @@ -28,7 +28,6 @@ CHANGELOG * Made `BrowserKitAssertionsTrait` report the original error message in case of a failure * Added ability for `config:dump-reference` and `debug:config` to dump and debug kernel container extension configuration. * Deprecated `session.attribute_bag` service and `session.flash_bag` service. - * Added `UidNormalizer` to the framework serializer. 5.0.0 ----- diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/serializer.php b/src/Symfony/Bundle/FrameworkBundle/Resources/config/serializer.php index a0c5be34b9..5f02d765f9 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/serializer.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/serializer.php @@ -44,6 +44,7 @@ use Symfony\Component\Serializer\Normalizer\NormalizerInterface; use Symfony\Component\Serializer\Normalizer\ObjectNormalizer; use Symfony\Component\Serializer\Normalizer\ProblemNormalizer; use Symfony\Component\Serializer\Normalizer\PropertyNormalizer; +use Symfony\Component\Serializer\Normalizer\UidNormalizer; use Symfony\Component\Serializer\Normalizer\UnwrappingDenormalizer; use Symfony\Component\Serializer\Serializer; use Symfony\Component\Serializer\SerializerInterface; @@ -106,6 +107,9 @@ return static function (ContainerConfigurator $container) { ->args([service('serializer.property_accessor')]) ->tag('serializer.normalizer', ['priority' => 1000]) + ->set('serializer.normalizer.uid', UidNormalizer::class) + ->tag('serializer.normalizer', ['priority' => -915]) + ->set('serializer.normalizer.object', ObjectNormalizer::class) ->args([ service('serializer.mapping.class_metadata_factory'), diff --git a/src/Symfony/Component/Serializer/CHANGELOG.md b/src/Symfony/Component/Serializer/CHANGELOG.md index 8cbfdbe393..e5915f7af9 100644 --- a/src/Symfony/Component/Serializer/CHANGELOG.md +++ b/src/Symfony/Component/Serializer/CHANGELOG.md @@ -5,6 +5,7 @@ CHANGELOG ----- * added `CompiledClassMetadataFactory` and `ClassMetadataFactoryCompiler` for faster metadata loading. +* added `UidNormalizer` 5.1.0 ----- @@ -13,7 +14,6 @@ CHANGELOG * added support for `\stdClass` to `ObjectNormalizer` * added the ability to ignore properties using metadata (e.g. `@Symfony\Component\Serializer\Annotation\Ignore`) * added an option to serialize constraint violations payloads (e.g. severity) - * added `UidNormalizer` 5.0.0 ----- diff --git a/src/Symfony/Component/Serializer/Normalizer/UidNormalizer.php b/src/Symfony/Component/Serializer/Normalizer/UidNormalizer.php index b75ca0c436..7ab8978fec 100644 --- a/src/Symfony/Component/Serializer/Normalizer/UidNormalizer.php +++ b/src/Symfony/Component/Serializer/Normalizer/UidNormalizer.php @@ -12,7 +12,6 @@ namespace Symfony\Component\Serializer\Normalizer; use Symfony\Component\Serializer\Exception\InvalidArgumentException; -use Symfony\Component\Serializer\Exception\LogicException; use Symfony\Component\Serializer\Exception\NotNormalizableValueException; use Symfony\Component\Uid\AbstractUid; use Symfony\Component\Uid\Ulid; @@ -22,13 +21,11 @@ final class UidNormalizer implements NormalizerInterface, DenormalizerInterface, { /** * {@inheritdoc} - * - * @throws InvalidArgumentException */ public function normalize($object, string $format = null, array $context = []) { if (!$object instanceof AbstractUid) { - throw new InvalidArgumentException('The object must be an instance of "\Symfony\Component\Uid\AbstractUid".'); + throw new InvalidArgumentException('The object must be an instance of "Symfony\Component\Uid\AbstractUid".'); } return (string) $object; @@ -44,19 +41,13 @@ final class UidNormalizer implements NormalizerInterface, DenormalizerInterface, /** * {@inheritdoc} - * - * @throws NotNormalizableValueException */ public function denormalize($data, string $type, string $format = null, array $context = []) { - if (!class_exists(AbstractUid::class)) { - throw new LogicException('You cannot use the "Symfony\Component\Serializer\Normalizer\UidNormalizer" as the Symfony Uid Component is not installed. Try running "composer require symfony/uid".'); - } - try { $uid = Ulid::class === $type ? Ulid::fromString($data) : Uuid::fromString($data); } catch (\InvalidArgumentException $exception) { - throw new NotNormalizableValueException('The data is not a valid '.$type.' string representation.'); + throw new NotNormalizableValueException(sprintf('The data is not a valid "%s" string representation.', $type)); } return $uid;