Fetch
in package
Leaf Fetch --------- Plain simple PHP http client.
Table of Contents
Constants
- DELETE = 'DELETE'
- GET = 'GET'
- HEAD = 'HEAD'
- OPTIONS = 'OPTIONS'
- OVERRIDE = '_METHOD'
- PATCH = 'PATCH'
- POST = 'POST'
- PUT = 'PUT'
Properties
Methods
- baseUrl() : mixed
- buildHTTPCurlQuery() : array<string|int, mixed>
- This function is useful for serializing multidimensional arrays, and avoid getting the 'Array to string conversion' notice
- delete() : mixed
- Make a delete request
- get() : mixed
- Make a get request
- getInfo() : mixed
- options() : mixed
- Make an options request
- patch() : mixed
- Make a patch request
- post() : mixed
- Make a post request
- put() : mixed
- Make a put request
- request() : mixed
- Base method for network requests
- call() : mixed
- parseHeaders() : array<string|int, mixed>
- if PECL_HTTP is not available use a fall back function
Constants
DELETE
public
mixed
DELETE
= 'DELETE'
GET
public
mixed
GET
= 'GET'
HEAD
public
mixed
HEAD
= 'HEAD'
OPTIONS
public
mixed
OPTIONS
= 'OPTIONS'
OVERRIDE
public
mixed
OVERRIDE
= '_METHOD'
PATCH
public
mixed
PATCH
= 'PATCH'
POST
public
mixed
POST
= 'POST'
PUT
public
mixed
PUT
= 'PUT'
Properties
$options
Default fetch options
protected
static mixed
$options
= [
// `url` is the server URL that will be used for the request
"url" => null,
// `method` is the request method to be used when making the request
"method" => "GET",
// default
// `baseURL` will be prepended to `url` unless `url` is absolute.
// It can be convenient to set `baseURL` for an instance of axios to pass relative URLs
// to methods of that instance.
"baseUrl" => "",
// `transformRequest` allows changes to the request data before it is sent to the server
// This is only applicable for request methods 'PUT', 'POST', 'PATCH' and 'DELETE'
// The last function in the array must return a string or an instance of Buffer, ArrayBuffer,
// FormData or Stream
// You may modify the headers object.
// "transformRequest" => function ($data, $headers) {
// // Do whatever you want to transform the data
// return $data;
// },
// `transformResponse` allows changes to the response data to be made before
// it is passed to then/catch
// "transformResponse" => function ($data) {
// // Do whatever you want to transform the data
// return $data;
// },
// `headers` are custom headers to be sent
"headers" => [],
// `params` are the URL parameters to be sent with the request
// Must be a plain object or a URLSearchParams object
"params" => [],
// `paramsSerializer` is an optional function in charge of serializing `params`
// (e.g. https://www.npmjs.com/package/qs, http://api.jquery.com/jquery.param/)
// "paramsSerializer" => function ($params) {
// return Qs.stringify($params, ["arrayFormat" => "brackets"]);
// },
// `data` is the data to be sent as the request body
// Only applicable for request methods 'PUT', 'POST', 'DELETE , and 'PATCH'
// When no `transformRequest` is set, must be of one of the following types:
// - string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams
// - Browser "only" => FormData, File, Blob
// - Node "only" => Stream, Buffer
"data" => [],
// `timeout` specifies the number of milliseconds before the request times out.
// If the request takes longer than `timeout`, the request will be aborted.
"timeout" => 0,
// default is `0` (no timeout)
// `withCredentials` indicates whether or not cross-site Access-Control requests
// should be made using credentials
"withCredentials" => false,
// default
// `adapter` allows custom handling of requests which makes testing easier.
// Return a promise and supply a valid response (see lib/adapters/README.md).
// "adapter" => function ($config) {
// /* ... */
// },
// `auth` indicates that HTTP Basic auth should be used, and supplies credentials.
// This will set an `Authorization` header, overwriting any existing
// `Authorization` custom headers you have set using `headers`.
// Please note that only HTTP Basic auth is configurable through this parameter.
// For Bearer tokens and such, use `Authorization` custom headers instead.
"auth" => [],
// `responseType` indicates the type of data that the server will respond with
// options "are" => 'arraybuffer', 'document', 'json', 'text', 'stream'
// browser "only" => 'blob'
"responseType" => "json",
// default
// `responseEncoding` indicates encoding to use for decoding responses (Node.js only)
// "Note" => Ignored for `responseType` of 'stream' or client-side requests
"responseEncoding" => "utf8",
// default
// `xsrfCookieName` is the name of the cookie to use as a value for xsrf token
"xsrfCookieName" => "XSRF-TOKEN",
// default
// `xsrfHeaderName` is the name of the http header that carries the xsrf token value
"xsrfHeaderName" => "X-XSRF-TOKEN",
// default
// `onUploadProgress` allows handling of progress events for uploads
// browser only
// "onUploadProgress" => function ($progressEvent) {
// // Do whatever you want with the native progress event
// },
// `onDownloadProgress` allows handling of progress events for downloads
// browser only
// "onDownloadProgress" => function ($progressEvent) {
// // Do whatever you want with the native progress event
// },
// `maxContentLength` defines the max size of the http response content in bytes allowed in node.js
"maxContentLength" => 2000,
// `maxBodyLength` (Node only option) defines the max size of the http request content in bytes allowed
"maxBodyLength" => 2000,
// `validateStatus` defines whether to resolve or reject the promise for a given
// HTTP response status code. If `validateStatus` returns `true` (or is set to `null`
// or `undefined`), the promise will be resolved; otherwise, the promise will be
// rejected.
// "validateStatus" => function ($status) {
// return $status >= 200 && $status < 300; // default
// },
// `maxRedirects` defines the maximum number of redirects to follow in node.js.
// If set to 0, no redirects will be followed.
"maxRedirects" => 5,
// default
// `socketPath` defines a UNIX Socket to be used in node.js.
// e.g. '/var/run/docker.sock' to send requests to the docker daemon.
// Only either `socketPath` or `proxy` can be specified.
// If both are specified, `socketPath` is used.
"socketPath" => null,
// default
// `proxy` defines the hostname, port, and protocol of the proxy server.
// You can also define your proxy using the conventional `http_proxy` and
// `https_proxy` environment variables. If you are using environment variables
// for your proxy configuration, you can also define a `no_proxy` environment
// variable as a comma-separated list of domains that should not be proxied.
// Use `false` to disable proxies, ignoring environment variables.
// `auth` indicates that HTTP Basic auth should be used to connect to the proxy, and
// supplies credentials.
// This will set an `Proxy-Authorization` header, overwriting any existing
// `Proxy-Authorization` custom headers you have set using `headers`.
// If the proxy server uses HTTPS, then you must set the protocol to `https`.
"proxy" => [],
// `decompress` indicates whether or not the response body should be decompressed
// automatically. If set to `true` will also remove the 'content-encoding' header
// from the responses objects of all decompressed responses
// - Node only (XHR cannot turn off decompression)
"decompress" => true,
// default
// If false, fetch will try to parse json responses
"rawResponse" => false,
// CURLOPT_SSL_VERIFYHOST accepts only 0 (false) or 2 (true).
// Future versions of libcurl will treat values 1 and 2 as equals
"verifyHost" => true,
// default
"verifyPeer" => true,
// default
// Set additional options for curl.
"curl" => [],
]
$handler
private
static mixed
$handler
= null
Methods
baseUrl()
public
static baseUrl(mixed $url) : mixed
Parameters
- $url : mixed
buildHTTPCurlQuery()
This function is useful for serializing multidimensional arrays, and avoid getting the 'Array to string conversion' notice
public
static buildHTTPCurlQuery(array<string|int, mixed> $data[, bool|string $parent = false ]) : array<string|int, mixed>
Parameters
- $data : array<string|int, mixed>
-
array to flatten.
- $parent : bool|string = false
-
parent key or false if no parent
Tags
Return values
array<string|int, mixed>delete()
Make a delete request
public
static delete(mixed $url[, mixed $config = [] ]) : mixed
Parameters
- $url : mixed
- $config : mixed = []
Tags
get()
Make a get request
public
static get(mixed $url[, mixed $config = [] ]) : mixed
Parameters
- $url : mixed
- $config : mixed = []
Tags
getInfo()
public
static getInfo([mixed $opt = false ]) : mixed
Parameters
- $opt : mixed = false
options()
Make an options request
public
static options(mixed $url[, mixed $config = [] ]) : mixed
Parameters
- $url : mixed
- $config : mixed = []
Tags
patch()
Make a patch request
public
static patch(mixed $url, mixed $data[, mixed $config = [] ]) : mixed
Parameters
- $url : mixed
- $data : mixed
- $config : mixed = []
Tags
post()
Make a post request
public
static post(mixed $url, mixed $data[, mixed $config = [] ]) : mixed
Parameters
- $url : mixed
- $data : mixed
- $config : mixed = []
Tags
put()
Make a put request
public
static put(mixed $url, mixed $data[, mixed $config = [] ]) : mixed
Parameters
- $url : mixed
- $data : mixed
- $config : mixed = []
Tags
request()
Base method for network requests
public
static request(mixed $options) : mixed
Parameters
- $options : mixed
Tags
call()
private
static call(mixed $request) : mixed
Parameters
- $request : mixed
Tags
parseHeaders()
if PECL_HTTP is not available use a fall back function
private
static parseHeaders(string $raw_headers) : array<string|int, mixed>
thanks to ricardovermeltfoort@gmail.com http://php.net/manual/en/function.http-parse-headers.php#112986
Parameters
- $raw_headers : string
-
raw headers