summaryrefslogtreecommitdiff
path: root/vendor/php-http/discovery/src/Psr18ClientDiscovery.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/php-http/discovery/src/Psr18ClientDiscovery.php')
-rw-r--r--vendor/php-http/discovery/src/Psr18ClientDiscovery.php32
1 files changed, 32 insertions, 0 deletions
diff --git a/vendor/php-http/discovery/src/Psr18ClientDiscovery.php b/vendor/php-http/discovery/src/Psr18ClientDiscovery.php
new file mode 100644
index 000000000..dfd2dd1e7
--- /dev/null
+++ b/vendor/php-http/discovery/src/Psr18ClientDiscovery.php
@@ -0,0 +1,32 @@
+<?php
+
+namespace Http\Discovery;
+
+use Http\Discovery\Exception\DiscoveryFailedException;
+use Psr\Http\Client\ClientInterface;
+
+/**
+ * Finds a PSR-18 HTTP Client.
+ *
+ * @author Tobias Nyholm <[email protected]>
+ */
+final class Psr18ClientDiscovery extends ClassDiscovery
+{
+ /**
+ * Finds a PSR-18 HTTP Client.
+ *
+ * @return ClientInterface
+ *
+ * @throws Exception\NotFoundException
+ */
+ public static function find()
+ {
+ try {
+ $client = static::findOneByType(ClientInterface::class);
+ } catch (DiscoveryFailedException $e) {
+ throw new \Http\Discovery\Exception\NotFoundException('No PSR-18 clients found. Make sure to install a package providing "psr/http-client-implementation". Example: "php-http/guzzle7-adapter".', 0, $e);
+ }
+
+ return static::instantiateClass($client);
+ }
+}