HumHub Documentation (unofficial)

HttpClientTrait

Provides the common logic from writing HttpClientInterface implementations.

All private methods are static to prevent implementers from creating memory leaks via circular references.

Tags
author

Nicolas Grekas p@tchwork.com

Table of Contents

Properties

$CHUNK_SIZE  : mixed

Methods

withOptions()  : self
{@inheritdoc}
dechunk()  : string
getProxy()  : array<string|int, mixed>|null
Loads proxy configuration from the same environment variables as curl when no proxy is explicitly set.
getProxyUrl()  : string|null
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

Methods

withOptions()

{@inheritdoc}

public withOptions(array<string|int, mixed> $options) : self
Parameters
$options : array<string|int, mixed>
Return values
self

dechunk()

private static dechunk(string $body) : string
Parameters
$body : string
Return values
string

getProxy()

Loads proxy configuration from the same environment variables as curl when no proxy is explicitly set.

private static getProxy(string|null $proxy, array<string|int, mixed> $url, string|null $noProxy) : array<string|int, mixed>|null
Parameters
$proxy : string|null
$url : array<string|int, mixed>
$noProxy : string|null
Return values
array<string|int, mixed>|null

getProxyUrl()

private static getProxyUrl(string|null $proxy, array<string|int, mixed> $url) : string|null
Parameters
$proxy : string|null
$url : array<string|int, mixed>
Return values
string|null

jsonEncode()

private static jsonEncode(mixed $value[, int|null $flags = null ][, int $maxDepth = 512 ]) : string
Parameters
$value : mixed
$flags : int|null = null
$maxDepth : int = 512
Tags
throws
InvalidArgumentException

When the value cannot be json-encoded

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
throws
InvalidArgumentException

When an invalid option is found

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
throws
InvalidArgumentException

When an invalid query-string value is passed

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
throws
InvalidArgumentException

When an invalid body is passed

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
throws
InvalidArgumentException

When an invalid header is found

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
throws
InvalidArgumentException

When an invalid fingerprint is passed

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
throws
InvalidArgumentException

When an invalid URL is passed

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
throws
InvalidArgumentException

When a not-supported option is found

Return values
array<string|int, 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
see
https://tools.ietf.org/html/rfc3986#section-5.2.2
throws
InvalidArgumentException

When an invalid URL is passed

Return values
array<string|int, mixed>

shouldBuffer()

private static shouldBuffer(array<string|int, mixed> $headers) : bool
Parameters
$headers : array<string|int, mixed>
Return values
bool

        
On this page

Search results