summaryrefslogtreecommitdiff
path: root/vendor/php-http/discovery/src/Psr18Client.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/php-http/discovery/src/Psr18Client.php')
-rw-r--r--vendor/php-http/discovery/src/Psr18Client.php45
1 files changed, 45 insertions, 0 deletions
diff --git a/vendor/php-http/discovery/src/Psr18Client.php b/vendor/php-http/discovery/src/Psr18Client.php
new file mode 100644
index 000000000..c47780ec6
--- /dev/null
+++ b/vendor/php-http/discovery/src/Psr18Client.php
@@ -0,0 +1,45 @@
+<?php
+
+namespace Http\Discovery;
+
+use Psr\Http\Client\ClientInterface;
+use Psr\Http\Message\RequestFactoryInterface;
+use Psr\Http\Message\RequestInterface;
+use Psr\Http\Message\ResponseFactoryInterface;
+use Psr\Http\Message\ResponseInterface;
+use Psr\Http\Message\ServerRequestFactoryInterface;
+use Psr\Http\Message\StreamFactoryInterface;
+use Psr\Http\Message\UploadedFileFactoryInterface;
+use Psr\Http\Message\UriFactoryInterface;
+
+/**
+ * A generic PSR-18 and PSR-17 implementation.
+ *
+ * You can create this class with concrete client and factory instances
+ * or let it use discovery to find suitable implementations as needed.
+ *
+ * @author Nicolas Grekas <[email protected]>
+ */
+class Psr18Client extends Psr17Factory implements ClientInterface
+{
+ private $client;
+
+ public function __construct(
+ ClientInterface $client = null,
+ RequestFactoryInterface $requestFactory = null,
+ ResponseFactoryInterface $responseFactory = null,
+ ServerRequestFactoryInterface $serverRequestFactory = null,
+ StreamFactoryInterface $streamFactory = null,
+ UploadedFileFactoryInterface $uploadedFileFactory = null,
+ UriFactoryInterface $uriFactory = null
+ ) {
+ parent::__construct($requestFactory, $responseFactory, $serverRequestFactory, $streamFactory, $uploadedFileFactory, $uriFactory);
+
+ $this->client = $client ?? Psr18ClientDiscovery::find();
+ }
+
+ public function sendRequest(RequestInterface $request): ResponseInterface
+ {
+ return $this->client->sendRequest($request);
+ }
+}