From 6fa2ca51105fa8d8ad0d611bc59f6ca0188b1b57 Mon Sep 17 00:00:00 2001 From: Anton Smirnov Date: Thu, 30 Nov 2023 16:54:58 +0200 Subject: [PATCH 1/2] Check if SymfonyHttplug actually implements HttpClient --- src/Strategy/CommonClassesStrategy.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Strategy/CommonClassesStrategy.php b/src/Strategy/CommonClassesStrategy.php index ae0b0d8..49453db 100644 --- a/src/Strategy/CommonClassesStrategy.php +++ b/src/Strategy/CommonClassesStrategy.php @@ -78,7 +78,7 @@ final class CommonClassesStrategy implements DiscoveryStrategy ['class' => React::class, 'condition' => React::class], ], HttpClient::class => [ - ['class' => SymfonyHttplug::class, 'condition' => [SymfonyHttplug::class, [self::class, 'isPsr17FactoryInstalled']]], + ['class' => SymfonyHttplug::class, 'condition' => [SymfonyHttplug::class, [self::class, 'isPsr17FactoryInstalled'], [self::class, 'isSymfonyImplementingHttpClient']]], ['class' => Guzzle7::class, 'condition' => Guzzle7::class], ['class' => Guzzle6::class, 'condition' => Guzzle6::class], ['class' => Guzzle5::class, 'condition' => Guzzle5::class], @@ -158,6 +158,11 @@ public static function isGuzzleImplementingPsr18() return defined('GuzzleHttp\ClientInterface::MAJOR_VERSION'); } + public static function isSymfonyImplementingHttpClient() + { + return is_a(SymfonyHttplug::class, HttpClient::class, true); + } + /** * Can be used as a condition. * From 3833a7365069ebead639336954ea238abca596a1 Mon Sep 17 00:00:00 2001 From: Anton Smirnov Date: Thu, 30 Nov 2023 17:03:36 +0200 Subject: [PATCH 2/2] Use is_subclass_of Co-authored-by: Nicolas Grekas --- src/Strategy/CommonClassesStrategy.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Strategy/CommonClassesStrategy.php b/src/Strategy/CommonClassesStrategy.php index 49453db..0fa4240 100644 --- a/src/Strategy/CommonClassesStrategy.php +++ b/src/Strategy/CommonClassesStrategy.php @@ -160,7 +160,7 @@ public static function isGuzzleImplementingPsr18() public static function isSymfonyImplementingHttpClient() { - return is_a(SymfonyHttplug::class, HttpClient::class, true); + return is_subclass_of(SymfonyHttplug::class, HttpClient::class); } /**