From d0492d6217e5ab48f51fca76f64cf8e78919d0db Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 7 Jan 2025 18:11:41 +0100 Subject: [PATCH] [HttpFoundation][FrameworkBundle] Reset Request's formats using the service resetter --- RequestStack.php | 7 +++++++ Tests/RequestStackTest.php | 14 ++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/RequestStack.php b/RequestStack.php index 5aa8ba793..ca61eef29 100644 --- a/RequestStack.php +++ b/RequestStack.php @@ -106,4 +106,11 @@ public function getSession(): SessionInterface throw new SessionNotFoundException(); } + + public function resetRequestFormats(): void + { + static $resetRequestFormats; + $resetRequestFormats ??= \Closure::bind(static fn () => self::$formats = null, null, Request::class); + $resetRequestFormats(); + } } diff --git a/Tests/RequestStackTest.php b/Tests/RequestStackTest.php index 2b26ce5c6..3b958653f 100644 --- a/Tests/RequestStackTest.php +++ b/Tests/RequestStackTest.php @@ -67,4 +67,18 @@ public function testGetParentRequest() $requestStack->push($secondSubRequest); $this->assertSame($firstSubRequest, $requestStack->getParentRequest()); } + + public function testResetRequestFormats() + { + $requestStack = new RequestStack(); + + $request = Request::create('/foo'); + $request->setFormat('foo', ['application/foo']); + + $this->assertSame(['application/foo'], $request->getMimeTypes('foo')); + + $requestStack->resetRequestFormats(); + + $this->assertSame([], $request->getMimeTypes('foo')); + } }