![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/job-board.corals.io/vendor/php-http/client-common/src/ |
<?php declare(strict_types=1); namespace Http\Client\Common; use Http\Client\HttpAsyncClient; use Http\Client\HttpClient; use Psr\Http\Client\ClientInterface; /** * A flexible http client, which implements both interface and will emulate * one contract, the other, or none at all depending on the injected client contract. * * @author Joel Wurtz <[email protected]> */ final class FlexibleHttpClient implements HttpClient, HttpAsyncClient { use HttpClientDecorator; use HttpAsyncClientDecorator; /** * @param ClientInterface|HttpAsyncClient $client */ public function __construct($client) { if (!$client instanceof ClientInterface && !$client instanceof HttpAsyncClient) { throw new \TypeError( sprintf('%s::__construct(): Argument #1 ($client) must be of type %s|%s, %s given', self::class, ClientInterface::class, HttpAsyncClient::class, get_debug_type($client)) ); } $this->httpClient = $client instanceof ClientInterface ? $client : new EmulatedHttpClient($client); $this->httpAsyncClient = $client instanceof HttpAsyncClient ? $client : new EmulatedHttpAsyncClient($client); } }