diff --git a/src/ServiceFactory/SlimServiceFactory.php b/src/ServiceFactory/SlimServiceFactory.php index 566caee..615fa6e 100644 --- a/src/ServiceFactory/SlimServiceFactory.php +++ b/src/ServiceFactory/SlimServiceFactory.php @@ -22,6 +22,7 @@ use Symfony\Component\PropertyInfo\Extractor\ReflectionExtractor; use Symfony\Component\PropertyInfo\PropertyInfoExtractor; use Symfony\Component\Serializer\Normalizer\ArrayDenormalizer; +use Symfony\Component\Serializer\Normalizer\BackedEnumNormalizer; use Symfony\Component\Serializer\Normalizer\DenormalizerInterface; use Symfony\Component\Serializer\Normalizer\NormalizerInterface; use Symfony\Component\Serializer\Normalizer\ObjectNormalizer; @@ -39,6 +40,7 @@ final class SlimServiceFactory implements ServiceFactory { public function __invoke(ServicesBuilder $builder): iterable { yield Serializer::class => static fn () => new Serializer([ new ArrayDenormalizer(), + new BackedEnumNormalizer(), new ObjectNormalizer( propertyTypeExtractor: new PropertyInfoExtractor( typeExtractors: [ diff --git a/tests/Http/Serializer/DeserializeParameterResolverTest.php b/tests/Http/Serializer/DeserializeParameterResolverTest.php index 4967a69..060c066 100644 --- a/tests/Http/Serializer/DeserializeParameterResolverTest.php +++ b/tests/Http/Serializer/DeserializeParameterResolverTest.php @@ -27,6 +27,7 @@ public function testDeserialize(): void { 'tag' => [ 'name' => 'alpha', ], + 'enum' => 'foo', ]; $get = [ 'page' => 3, diff --git a/tests/Http/Serializer/SampleEnum.php b/tests/Http/Serializer/SampleEnum.php new file mode 100644 index 0000000..2cd3d31 --- /dev/null +++ b/tests/Http/Serializer/SampleEnum.php @@ -0,0 +1,9 @@ +