Documentation

NoPrivateNetworkHttpClient
in package
implements HttpClientInterface, LoggerAwareInterface, ResetInterface uses AsyncDecoratorTrait, HttpClientTrait

FinalYes

Decorator that blocks requests to private networks by default.

Tags
author

Hallison Boaventura hallisonboaventura@gmail.com

author

Nicolas Grekas p@tchwork.com

Table of Contents

Interfaces

HttpClientInterface
Provides flexible methods for requesting HTTP resources synchronously or asynchronously.
LoggerAwareInterface
Describes a logger-aware instance.
ResetInterface
Provides a way to reset an object to its initial state.

Properties

$CHUNK_SIZE  : int
$client  : HttpClientInterface
$defaultOptions  : array<string|int, mixed>
$dnsCache  : ArrayObject
$ipFlags  : int
$subnets  : array<string|int, mixed>|null

Methods

__construct()  : mixed
request()  : ResponseInterface
Requests an HTTP resource.
reset()  : void
setLogger()  : void
Sets a logger instance on the object.
stream()  : ResponseStreamInterface
withOptions()  : static
Returns a new instance of the client with new default options.
dechunk()  : string
dnsResolve()  : 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
ipCheck()  : void
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()  : string
Removes dot-segments from a path.
resolveUrl()  : array<string|int, mixed>
Resolves a URL against a base URI.
shouldBuffer()  : bool

Properties

Methods

__construct()

public __construct(HttpClientInterface $client[, string|array<string|int, mixed>|null $subnets = null ]) : mixed
Parameters
$client : HttpClientInterface
$subnets : string|array<string|int, mixed>|null = null

String or array of subnets using CIDR notation that should be considered private. If null is passed, the standard private subnets will be used.

request()

Requests an HTTP resource.

public request(string $method, string $url[, array<string|int, mixed> $options = [] ]) : ResponseInterface

Responses MUST be lazy, but their status code MUST be checked even if none of their public methods are called.

Implementations are not required to support all options described above; they can also support more custom options; but in any case, they MUST throw a TransportExceptionInterface when an unsupported option is passed.

Parameters
$method : string
$url : string
$options : array<string|int, mixed> = []
Return values
ResponseInterface

withOptions()

Returns a new instance of the client with new default options.

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

dechunk()

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

dnsResolve()

private static dnsResolve(ArrayObject $dnsCache, string $host, int $ipFlags, array<string|int, mixed> &$options) : string
Parameters
$dnsCache : ArrayObject
$host : string
$ipFlags : int
$options : array<string|int, mixed>
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

ipCheck()

private static ipCheck(string $ip, array<string|int, mixed>|null $subnets, int $ipFlags, string|null $host, string $url) : void
Parameters
$ip : string
$subnets : array<string|int, mixed>|null
$ipFlags : int
$host : string|null
$url : string

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[, array<string|int, mixed> &$normalizedHeaders = [] ]) : string|resource|Closure
Parameters
$body : array<string|int, mixed>|string|resource|Traversable|Closure
$normalizedHeaders : array<string|int, mixed> = []
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(mixed $fingerprint) : array<string|int, mixed>
Parameters
$fingerprint : mixed
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