Skip to content

Commit 359c13b

Browse files
fix(symfony): reset the skolem IRI converter between requests (#8681)
SkolemIriConverter implements ResetInterface but its service was not tagged kernel.reset, so in long-running workers (FrankenPHP worker mode) its object map kept every object that received a genid IRI alive for the life of the worker.
1 parent b1cd1b6 commit 359c13b

2 files changed

Lines changed: 3 additions & 1 deletion

File tree

‎src/Symfony/Bundle/Resources/config/api.php‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,8 @@
252252
->tag('routing.loader');
253253

254254
$services->set('api_platform.symfony.iri_converter.skolem', SkolemIriConverter::class)
255-
->args([service('api_platform.router')]);
255+
->args([service('api_platform.router')])
256+
->tag('kernel.reset', ['method' => 'reset']);
256257

257258
$services->set('api_platform.api.identifiers_extractor', IdentifiersExtractor::class)
258259
->args([

‎src/Symfony/Tests/Bundle/DependencyInjection/ApiPlatformExtensionTest.php‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,7 @@ public function testCommonConfiguration(): void
269269

270270
$this->assertServiceHasTags('api_platform.cache.route_name_resolver', ['cache.pool']);
271271
$this->assertServiceHasTags('api_platform.serializer.normalizer.item', ['serializer.normalizer']);
272+
$this->assertServiceHasTags('api_platform.symfony.iri_converter.skolem', ['kernel.reset']);
272273
$this->assertServiceHasTags('api_platform.serializer_locator', ['container.service_locator']);
273274
$this->assertServiceHasTags('api_platform.filter_locator', ['container.service_locator']);
274275

0 commit comments

Comments
 (0)