Skip to content

Client API Reference ​

The complete API reference for the Client class in the Fetch HTTP client package.

Class Declaration ​

php
namespace Fetch\Http;

class Client implements ClientInterface, LoggerAwareInterface
{
    // ...
}

Constructor ​

php
/**
 * Client constructor.
 *
 * @param  ClientHandlerInterface|null  $handler  The client handler
 * @param  array<string, mixed>  $options  Default request options
 * @param  LoggerInterface|null  $logger  PSR-3 logger
 */
public function __construct(
    ?ClientHandlerInterface $handler = null,
    array $options = [],
    ?LoggerInterface $logger = null
)

Factory Methods ​

createWithBaseUri() ​

Creates a new client with a base URI.

php
public static function createWithBaseUri(string $baseUri, array $options = []): static

PSR-7 Implementation ​

sendRequest() ​

Sends a PSR-7 request and returns a PSR-7 response. Implements the PSR-18 ClientInterface.

php
public function sendRequest(RequestInterface $request): PsrResponseInterface

Throws ​

  • NetworkException - If there's a network error
  • RequestException - If there's an error with the request
  • ClientException - For unexpected errors

Fetch API ​

fetch() ​

Creates and sends an HTTP request. Returns the handler for method chaining if no URL is provided.

php
public function fetch(?string $url = null, ?array $options = []): ResponseInterface|ClientHandlerInterface

HTTP Methods ​

get() ​

Makes a GET request.

php
public function get(string $url, ?array $queryParams = null, ?array $options = []): ResponseInterface

post() ​

Makes a POST request.

php
public function post(
    string $url,
    mixed $body = null,
    string|ContentType $contentType = ContentType::JSON,
    ?array $options = []
): ResponseInterface

put() ​

Makes a PUT request.

php
public function put(
    string $url,
    mixed $body = null,
    string|ContentType $contentType = ContentType::JSON,
    ?array $options = []
): ResponseInterface

patch() ​

Makes a PATCH request.

php
public function patch(
    string $url,
    mixed $body = null,
    string|ContentType $contentType = ContentType::JSON,
    ?array $options = []
): ResponseInterface

delete() ​

Makes a DELETE request.

php
public function delete(
    string $url,
    mixed $body = null,
    string|ContentType $contentType = ContentType::JSON,
    ?array $options = []
): ResponseInterface

Makes a HEAD request.

php
public function head(string $url, ?array $options = []): ResponseInterface

options() ​

Makes an OPTIONS request.

php
public function options(string $url, ?array $options = []): ResponseInterface

methodRequest() ​

Makes a request with a specific HTTP method (protected method used internally).

php
protected function methodRequest(
    Method $method,
    string $url,
    mixed $body = null,
    string|ContentType $contentType = ContentType::JSON,
    ?array $options = []
): ResponseInterface

Client Handling ​

getHandler() ​

Gets the underlying client handler.

php
public function getHandler(): ClientHandlerInterface

getHttpClient() ​

Gets the PSR-7 HTTP client.

php
public function getHttpClient(): ClientInterface

Logger Integration ​

setLogger() ​

Sets a PSR-3 logger. Implements PSR-3 LoggerAwareInterface.

php
public function setLogger(LoggerInterface $logger): void

Protected Methods ​

extractOptionsFromRequest() ​

Extracts options from a PSR-7 request.

php
protected function extractOptionsFromRequest(RequestInterface $request): array

Released under the MIT License. A modern HTTP client for PHP developers.