From 5b0d2b80527f15d7047748b6eb693867b4f6e262 Mon Sep 17 00:00:00 2001 From: Nyholm Date: Thu, 2 Jul 2020 08:57:28 +0200 Subject: [PATCH 1/2] Refactor to remove "guzzle specific" logic --- src/Strategy/CommonClassesStrategy.php | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/Strategy/CommonClassesStrategy.php b/src/Strategy/CommonClassesStrategy.php index ceff827..0dc8807 100644 --- a/src/Strategy/CommonClassesStrategy.php +++ b/src/Strategy/CommonClassesStrategy.php @@ -98,7 +98,7 @@ final class CommonClassesStrategy implements DiscoveryStrategy ], [ 'class' => GuzzleHttp::class, - 'condition' => GuzzleHttp::class, + 'condition' => [self::class, 'isGuzzleImplementingPsr18'] ], [ 'class' => [self::class, 'buzzInstantiate'], @@ -125,18 +125,7 @@ public static function getCandidates($type) */ private static function getPsr18Candidates() { - $candidates = []; - - // Guzzle 6 does not implement the PSR-18 client interface, but Guzzle 7 does. - foreach (self::$classes[Psr18Client::class] ?? [] as $c) { - if (GuzzleHttp::class === $c['class']) { - if (defined('GuzzleHttp\ClientInterface::MAJOR_VERSION')) { - $candidates[] = $c; - } - } else { - $candidates[] = $c; - } - } + $candidates = self::$classes[Psr18Client::class]; // HTTPlug 2.0 clients implements PSR18Client too. foreach (self::$classes[HttpClient::class] as $c) { @@ -162,6 +151,11 @@ public static function symfonyPsr18Instantiate() return new SymfonyPsr18(null, Psr17FactoryDiscovery::findResponseFactory(), Psr17FactoryDiscovery::findStreamFactory()); } + public static function isGuzzleImplementingPsr18() + { + return defined('GuzzleHttp\ClientInterface::MAJOR_VERSION'); + } + /** * Can be used as a condition. * From 37741f7c102bb2761aa8d2cb84da91f75dde633f Mon Sep 17 00:00:00 2001 From: Nyholm Date: Thu, 2 Jul 2020 09:01:34 +0200 Subject: [PATCH 2/2] cs --- 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 0dc8807..5cf52c7 100644 --- a/src/Strategy/CommonClassesStrategy.php +++ b/src/Strategy/CommonClassesStrategy.php @@ -98,7 +98,7 @@ final class CommonClassesStrategy implements DiscoveryStrategy ], [ 'class' => GuzzleHttp::class, - 'condition' => [self::class, 'isGuzzleImplementingPsr18'] + 'condition' => [self::class, 'isGuzzleImplementingPsr18'], ], [ 'class' => [self::class, 'buzzInstantiate'],