CachingHttpClient
in package
implements
HttpClientInterface
Uses
HttpClientTrait
Adds caching on top of an HTTP client.
The implementation buffers responses in memory and doesn't stream directly from the network. You can disable/enable this layer by setting option "no_cache" under "extra" to true/false. By default, caching is enabled unless the "buffer" option is set to false.
Tags
Interfaces, Classes, Traits and Enums
- HttpClientInterface
- Provides flexible methods for requesting HTTP resources synchronously or asynchronously.
Table of Contents
- $cache : mixed
- $CHUNK_SIZE : mixed
- $client : mixed
- $defaultOptions : mixed
- __construct() : mixed
- request() : ResponseInterface
- Requests an HTTP resource.
- stream() : ResponseStreamInterface
- Yields responses chunk by chunk as they complete.
- jsonEncode() : string
- mergeDefaultOptions() : array<string|int, mixed>
- mergeQueryString() : string|null
- Merges and encodes a query array with a query string.
- normalizeBody() : string|resource|Closure
- normalizeHeaders() : array<string|int, array<string|int, string>>
- normalizePeerFingerprint() : array<string|int, mixed>
- parseUrl() : array<string|int, mixed>
- Parses a URL and fixes its encoding if needed.
- prepareRequest() : array<string|int, mixed>
- Validates and normalizes method, URL and options, and merges them with defaults.
- removeDotSegments() : mixed
- Removes dot-segments from a path.
- resolveUrl() : array<string|int, mixed>
- Resolves a URL against a base URI.
- shouldBuffer() : bool
Properties
$cache
private
mixed
$cache
$CHUNK_SIZE
private
static mixed
$CHUNK_SIZE
= 16372
$client
private
mixed
$client
$defaultOptions
private
mixed
$defaultOptions
= self::OPTIONS_DEFAULTS
Methods
__construct()
public
__construct(HttpClientInterface $client, StoreInterface $store[, array<string|int, mixed> $defaultOptions = [] ]) : mixed
Parameters
- $client : HttpClientInterface
- $store : StoreInterface
- $defaultOptions : array<string|int, mixed> = []
Return values
mixed —request()
Requests an HTTP resource.
public
request(string $method, string $url[, array<string|int, mixed> $options = [] ]) : ResponseInterface
Parameters
- $method : string
- $url : string
- $options : array<string|int, mixed> = []
Return values
ResponseInterface —stream()
Yields responses chunk by chunk as they complete.
public
stream(mixed $responses[, float $timeout = null ]) : ResponseStreamInterface
Parameters
- $responses : mixed
-
One or more responses created by the current HTTP client
- $timeout : float = null
-
The idle timeout before yielding timeout chunks
Return values
ResponseStreamInterface —jsonEncode()
private
static jsonEncode(mixed $value[, int $flags = null ][, int $maxDepth = 512 ]) : string
Parameters
- $value : mixed
- $flags : int = null
- $maxDepth : int = 512
Tags
Return values
string —mergeDefaultOptions()
private
static mergeDefaultOptions(array<string|int, mixed> $options, array<string|int, mixed> $defaultOptions[, bool $allowExtraOptions = false ]) : array<string|int, mixed>
Parameters
- $options : array<string|int, mixed>
- $defaultOptions : array<string|int, mixed>
- $allowExtraOptions : bool = false
Tags
Return values
array<string|int, mixed> —mergeQueryString()
Merges and encodes a query array with a query string.
private
static mergeQueryString(string|null $queryString, array<string|int, mixed> $queryArray, bool $replace) : string|null
Parameters
- $queryString : string|null
- $queryArray : array<string|int, mixed>
- $replace : bool
Tags
Return values
string|null —normalizeBody()
private
static normalizeBody(array<string|int, mixed>|string|resource|Traversable|Closure $body) : string|resource|Closure
Parameters
- $body : array<string|int, mixed>|string|resource|Traversable|Closure
Tags
Return values
string|resource|Closure —normalizeHeaders()
private
static normalizeHeaders(array<string|int, mixed> $headers) : array<string|int, array<string|int, string>>
Parameters
- $headers : array<string|int, mixed>
Tags
Return values
array<string|int, array<string|int, string>> —normalizePeerFingerprint()
private
static normalizePeerFingerprint(string|array<string|int, string> $fingerprint) : array<string|int, mixed>
Parameters
- $fingerprint : string|array<string|int, string>
Tags
Return values
array<string|int, mixed> —parseUrl()
Parses a URL and fixes its encoding if needed.
private
static parseUrl(string $url[, array<string|int, mixed> $query = [] ][, array<string|int, mixed> $allowedSchemes = ['http' => 80, 'https' => 443] ]) : array<string|int, mixed>
Parameters
- $url : string
- $query : array<string|int, mixed> = []
- $allowedSchemes : array<string|int, mixed> = ['http' => 80, 'https' => 443]
Tags
Return values
array<string|int, mixed> —prepareRequest()
Validates and normalizes method, URL and options, and merges them with defaults.
private
static prepareRequest(string|null $method, string|null $url, array<string|int, mixed> $options[, array<string|int, mixed> $defaultOptions = [] ][, bool $allowExtraOptions = false ]) : array<string|int, mixed>
Parameters
- $method : string|null
- $url : string|null
- $options : array<string|int, mixed>
- $defaultOptions : array<string|int, mixed> = []
- $allowExtraOptions : bool = false
Tags
Return values
array<string|int, mixed> —removeDotSegments()
Removes dot-segments from a path.
private
static removeDotSegments(string $path) : mixed
Parameters
- $path : string
Tags
Return values
mixed —resolveUrl()
Resolves a URL against a base URI.
private
static resolveUrl(array<string|int, mixed> $url, array<string|int, mixed>|null $base[, array<string|int, mixed> $queryDefaults = [] ]) : array<string|int, mixed>
Parameters
- $url : array<string|int, mixed>
- $base : array<string|int, mixed>|null
- $queryDefaults : array<string|int, mixed> = []
Tags
Return values
array<string|int, mixed> —shouldBuffer()
private
static shouldBuffer(array<string|int, mixed> $headers) : bool
Parameters
- $headers : array<string|int, mixed>