diff --git a/src/VerbsServiceProvider.php b/src/VerbsServiceProvider.php index 1d87473e..5594cce3 100644 --- a/src/VerbsServiceProvider.php +++ b/src/VerbsServiceProvider.php @@ -12,6 +12,7 @@ use Symfony\Component\Serializer\Encoder\JsonEncoder; use Symfony\Component\Serializer\Mapping\ClassDiscriminatorFromClassMetadata; use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory; +use Symfony\Component\Serializer\Mapping\Loader\AnnotationLoader; use Symfony\Component\Serializer\Mapping\Loader\AttributeLoader; use Symfony\Component\Serializer\Normalizer\PropertyNormalizer; use Symfony\Component\Serializer\Serializer as SymfonySerializer; @@ -64,9 +65,13 @@ public function packageRegistered() $this->app->singleton(Serializer::class); $this->app->singleton(PropertyNormalizer::class, function () { - return new PropertyNormalizer( + $loader = class_exists(AttributeLoader::class) + ? new AttributeLoader() + : new AnnotationLoader(); + + return new PropertyNormalizer( propertyTypeExtractor: new ReflectionExtractor(), - classDiscriminatorResolver: new ClassDiscriminatorFromClassMetadata(new ClassMetadataFactory(new AttributeLoader())), + classDiscriminatorResolver: new ClassDiscriminatorFromClassMetadata(new ClassMetadataFactory($loader)), ); });