From 8f5f98a56313fcdb96acc50c08ca00e0743c6c0e Mon Sep 17 00:00:00 2001 From: HypeMC Date: Wed, 11 Dec 2024 21:13:32 +0100 Subject: [PATCH] [HttpClient] Fix reset not called on decorated clients --- .../DependencyInjection/FrameworkExtension.php | 2 ++ .../Bundle/FrameworkBundle/Resources/config/http_client.php | 1 + .../DependencyInjection/FrameworkExtensionTestCase.php | 6 +++++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index 36984e7398528..1dfc418cc08bb 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -2565,11 +2565,13 @@ private function registerHttpClientConfiguration(array $config, ContainerBuilder ->setFactory([ScopingHttpClient::class, 'forBaseUri']) ->setArguments([new Reference('http_client.transport'), $baseUri, $scopeConfig]) ->addTag('http_client.client') + ->addTag('kernel.reset', ['method' => 'reset', 'on_invalid' => 'ignore']) ; } else { $container->register($name, ScopingHttpClient::class) ->setArguments([new Reference('http_client.transport'), [$scope => $scopeConfig], $scope]) ->addTag('http_client.client') + ->addTag('kernel.reset', ['method' => 'reset', 'on_invalid' => 'ignore']) ; } diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/http_client.php b/src/Symfony/Bundle/FrameworkBundle/Resources/config/http_client.php index a4c78d0ec262b..593b78fdd5b2f 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/http_client.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/http_client.php @@ -39,6 +39,7 @@ ->factory('current') ->args([[service('http_client.transport')]]) ->tag('http_client.client') + ->tag('kernel.reset', ['method' => 'reset', 'on_invalid' => 'ignore']) ->alias(HttpClientInterface::class, 'http_client') diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php index 8ae5b771322f8..c891ec143fa13 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTestCase.php @@ -1976,8 +1976,12 @@ public function testHttpClientDefaultOptions() ]; $this->assertSame([$defaultOptions, 4], $container->getDefinition('http_client.transport')->getArguments()); + $this->assertTrue($container->getDefinition('http_client')->hasTag('kernel.reset')); + $this->assertTrue($container->hasDefinition('foo'), 'should have the "foo" service.'); - $this->assertSame(ScopingHttpClient::class, $container->getDefinition('foo')->getClass()); + $definition = $container->getDefinition('foo'); + $this->assertSame(ScopingHttpClient::class, $definition->getClass()); + $this->assertTrue($definition->hasTag('kernel.reset')); } public function testScopedHttpClientWithoutQueryOption() pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy