From 029ce06ef75d2ba6859c461240e753b7db2abd73 Mon Sep 17 00:00:00 2001 From: soyuka Date: Thu, 29 Jan 2026 18:08:10 +0100 Subject: [PATCH] fix(symfony): declare api_platform.normalizer.object fixes #7705 --- src/Symfony/Bundle/Resources/config/api.php | 14 ++++++++++++++ src/Symfony/Bundle/Resources/config/graphql.php | 2 +- src/Symfony/Bundle/Resources/config/hal.php | 2 +- src/Symfony/Bundle/Resources/config/jsonapi.php | 2 +- src/Symfony/Bundle/Resources/config/jsonld.php | 2 +- 5 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Bundle/Resources/config/api.php b/src/Symfony/Bundle/Resources/config/api.php index f3369dc43c..e3efe8b7a5 100644 --- a/src/Symfony/Bundle/Resources/config/api.php +++ b/src/Symfony/Bundle/Resources/config/api.php @@ -45,6 +45,7 @@ use ApiPlatform\Symfony\Routing\SkolemIriConverter; use Negotiation\Negotiator; use Symfony\Component\Serializer\Mapping\Factory\CacheClassMetadataFactory; +use Symfony\Component\Serializer\Normalizer\ObjectNormalizer; return function (ContainerConfigurator $container) { $services = $container->services(); @@ -131,6 +132,19 @@ ]) ->tag('serializer.normalizer', ['priority' => -895]); + $services->set('api_platform.normalizer.object', ObjectNormalizer::class) + ->args([ + service('serializer.mapping.class_metadata_factory'), + service('api_platform.name_converter')->ignoreOnInvalid(), + service('serializer.property_accessor'), + service('property_info')->ignoreOnInvalid(), + service('serializer.mapping.class_discriminator_resolver')->ignoreOnInvalid(), + null, + [], + service('property_info')->ignoreOnInvalid(), + ]) + ->tag('serializer.normalizer', ['built_in' => true, 'priority' => -1000]); + $services->set('api_platform.serializer.mapping.class_metadata_factory', ClassMetadataFactory::class) ->decorate('serializer.mapping.class_metadata_factory', null, -1) ->args([service('api_platform.serializer.mapping.class_metadata_factory.inner')]); diff --git a/src/Symfony/Bundle/Resources/config/graphql.php b/src/Symfony/Bundle/Resources/config/graphql.php index 39d221d490..0453cc8448 100644 --- a/src/Symfony/Bundle/Resources/config/graphql.php +++ b/src/Symfony/Bundle/Resources/config/graphql.php @@ -252,7 +252,7 @@ $services->set('api_platform.graphql.normalizer.object', ObjectNormalizer::class) ->args([ - service('serializer.normalizer.object'), + service('api_platform.normalizer.object'), service('api_platform.symfony.iri_converter'), service('api_platform.api.identifiers_extractor'), ]) diff --git a/src/Symfony/Bundle/Resources/config/hal.php b/src/Symfony/Bundle/Resources/config/hal.php index 14940623cf..1e2d91ce2a 100644 --- a/src/Symfony/Bundle/Resources/config/hal.php +++ b/src/Symfony/Bundle/Resources/config/hal.php @@ -69,7 +69,7 @@ $services->set('api_platform.hal.normalizer.object', ObjectNormalizer::class) ->args([ - service('serializer.normalizer.object'), + service('api_platform.normalizer.object'), service('api_platform.iri_converter'), ]) ->tag('serializer.normalizer', ['priority' => -995]); diff --git a/src/Symfony/Bundle/Resources/config/jsonapi.php b/src/Symfony/Bundle/Resources/config/jsonapi.php index e6a5522cb8..da7781e58c 100644 --- a/src/Symfony/Bundle/Resources/config/jsonapi.php +++ b/src/Symfony/Bundle/Resources/config/jsonapi.php @@ -77,7 +77,7 @@ $services->set('api_platform.jsonapi.normalizer.object', ObjectNormalizer::class) ->args([ - service('serializer.normalizer.object'), + service('api_platform.normalizer.object'), service('api_platform.iri_converter'), service('api_platform.resource_class_resolver'), service('api_platform.metadata.resource.metadata_collection_factory'), diff --git a/src/Symfony/Bundle/Resources/config/jsonld.php b/src/Symfony/Bundle/Resources/config/jsonld.php index b0e65149ed..1f9b2b7b31 100644 --- a/src/Symfony/Bundle/Resources/config/jsonld.php +++ b/src/Symfony/Bundle/Resources/config/jsonld.php @@ -61,7 +61,7 @@ $services->set('api_platform.jsonld.normalizer.object', ObjectNormalizer::class) ->args([ - service('serializer.normalizer.object'), + service('api_platform.normalizer.object'), service('api_platform.iri_converter'), service('api_platform.jsonld.context_builder'), ])