PHP 8.2.30
Preview: Psr18Client.php Size: 2.17 KB
/home/byroehnu/easetack.com/vendor/php-http/discovery/src/Psr18Client.php

<?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);
    }
}

Directory Contents

Dirs: 3 × Files: 12

Name Size Perms Modified Actions
Composer DIR
- drwxrwxrwx 2025-05-16 16:14:47
Edit Download
Exception DIR
- drwxrwxrwx 2025-05-16 16:14:47
Edit Download
Strategy DIR
- drwxrwxrwx 2025-05-16 16:14:47
Edit Download
6.81 KB lrw-rw-rw- 2024-10-02 11:20:13
Edit Download
204 B lrw-rw-rw- 2024-10-02 11:20:13
Edit Download
869 B lrw-rw-rw- 2024-10-02 11:20:13
Edit Download
904 B lrw-rw-rw- 2024-10-02 11:20:13
Edit Download
1.08 KB lrw-rw-rw- 2024-10-02 11:20:13
Edit Download
430 B lrw-rw-rw- 2024-10-02 11:20:13
Edit Download
11.37 KB lrw-rw-rw- 2024-10-02 11:20:13
Edit Download
3.77 KB lrw-rw-rw- 2024-10-02 11:20:13
Edit Download
2.17 KB lrw-rw-rw- 2024-10-02 11:20:13
Edit Download
916 B lrw-rw-rw- 2024-10-02 11:20:13
Edit Download
960 B lrw-rw-rw- 2024-10-02 11:20:13
Edit Download
902 B lrw-rw-rw- 2024-10-02 11:20:13
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).