Psr18Client.php
Namespace
Http\DiscoveryFile
-
vendor/
php-http/ discovery/ src/ Psr18Client.php
View source
<?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 <p@tchwork.com>
*/
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) {
$requestFactory ?? ($requestFactory = $client instanceof RequestFactoryInterface ? $client : null);
$responseFactory ?? ($responseFactory = $client instanceof ResponseFactoryInterface ? $client : null);
$serverRequestFactory ?? ($serverRequestFactory = $client instanceof ServerRequestFactoryInterface ? $client : null);
$streamFactory ?? ($streamFactory = $client instanceof StreamFactoryInterface ? $client : null);
$uploadedFileFactory ?? ($uploadedFileFactory = $client instanceof UploadedFileFactoryInterface ? $client : null);
$uriFactory ?? ($uriFactory = $client instanceof UriFactoryInterface ? $client : 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);
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
Psr18Client | A generic PSR-18 and PSR-17 implementation. |