\Cake\HttpServerRequest

A class that helps wrap Request information and particulars about a single request.

Provides methods commonly used to introspect on the request headers and request body.

Summary

Methods
Properties
Constants
createFromGlobals()
__construct()
contentType()
getSession()
session()
clientIp()
setTrustedProxies()
getTrustedProxies()
referer()
__call()
__set()
__get()
__isset()
is()
clearDetectorCache()
isAll()
addDetector()
addParams()
addPaths()
here()
header()
getHeaders()
hasHeader()
getHeader()
getHeaderLine()
withHeader()
withAddedHeader()
withoutHeader()
method()
getMethod()
withMethod()
getServerParams()
getQueryParams()
withQueryParams()
host()
port()
scheme()
domain()
subdomains()
accepts()
parseAccept()
acceptLanguage()
query()
getQuery()
data()
getData()
param()
input()
cookie()
getCookie()
getCookieCollection()
withCookieCollection()
getCookieParams()
withCookieParams()
getParsedBody()
withParsedBody()
getProtocolVersion()
withProtocolVersion()
getEnv()
withEnv()
env()
allowMethod()
setInput()
withData()
withoutData()
withParam()
getParam()
withAttribute()
withoutAttribute()
getAttribute()
getAttributes()
getUploadedFile()
getUploadedFiles()
withUploadedFiles()
getBody()
withBody()
getUri()
withUri()
withRequestTarget()
getRequestTarget()
getPath()
offsetGet()
offsetSet()
offsetExists()
offsetUnset()
$trustProxy
No constants found
_setConfig()
_processPost()
_processGet()
_processFiles()
_createUploadedFile()
_normalizeNestedFiles()
_is()
_acceptHeaderDetector()
_headerDetector()
_paramDetector()
_environmentDetector()
normalizeHeaderName()
_parseAcceptWithQualifier()
_readInput()
validateUploadedFiles()
$params
$data
$query
$cookies
$_environment
$url
$base
$webroot
$here
$trustedProxies
$_input
$_detectors
$_detectorCache
$stream
$uri
$session
$attributes
$emulatedAttributes
$uploadedFiles
$protocol
$requestTarget
N/A
No private methods found
$deprecatedProperties
N/A

Properties

$trustProxy

$trustProxy : boolean

Whether or not to trust HTTP_X headers set by most load balancers.

Only set to true if your application runs behind load balancers/proxies that you control.

Type

boolean

$params

$params : array

Array of parameters parsed from the URL.

Type

array

$data

$data : null|array|object

Array of POST data. Will contain form data as well as uploaded files.

In PUT/PATCH/DELETE requests this property will contain the form-urlencoded data.

Type

null|array|object

$query

$query : array

Array of query string arguments

Type

array

$cookies

$cookies : array

Array of cookie data.

Type

array

$_environment

$_environment : array

Array of environment data.

Type

array

$url

$url : string

The URL string used for the request.

Type

string

$base

$base : string

Base URL path.

Type

string

$webroot

$webroot : string

webroot path segment for the request.

Type

string

$here

$here : string

The full address to the current request

Type

string

$trustedProxies

$trustedProxies : array

trusted proxies list

Type

array

$_input

$_input : string

Contents of php://input

Type

string

$_detectors

$_detectors : array

The built in detectors used with `is()` can be modified with `addDetector()`.

There are several ways to specify a detector, see \Cake\Http\ServerRequest::addDetector() for the various formats and ways to define detectors.

Type

array

$_detectorCache

$_detectorCache : array

Instance cache for results of is(something) calls

Type

array

$stream

$stream : \Psr\Http\Message\StreamInterface

Request body stream. Contains php://input unless `input` constructor option is used.

Type

\Psr\Http\Message\StreamInterface

$session

$session : \Cake\Http\Session

Instance of a Session object relative to this request

Type

\Cake\Http\Session

$attributes

$attributes : array

Store the additional attributes attached to the request.

Type

array

$emulatedAttributes

$emulatedAttributes : array

A list of propertes that emulated by the PSR7 attribute methods.

Type

array

$uploadedFiles

$uploadedFiles : array

Array of Psr\Http\Message\UploadedFileInterface objects.

Type

array

$protocol

$protocol : string|null

The HTTP protocol version used.

Type

string|null

$requestTarget

$requestTarget : string|null

The request target if overridden

Type

string|null

$deprecatedProperties

$deprecatedProperties : array

List of deprecated properties that have backwards compatibility offered through magic methods.

Type

array

Methods

createFromGlobals()

createFromGlobals() : self

Wrapper method to create a new request from PHP superglobals.

Uses the $_GET, $_POST, $_FILES, $_COOKIE, $_SERVER, $_ENV and php://input data to construct the request.

Returns

self

__construct()

__construct(string|array  $config = array()) 

Create a new request object.

You can supply the data as either an array or as a string. If you use a string you can only supply the URL for the request. Using an array will let you provide the following keys:

  • post POST data or non query string data
  • query Additional data from the query string.
  • files Uploaded file data formatted like $_FILES.
  • cookies Cookies for this request.
  • environment $_SERVER and $_ENV data.
  • url The URL without the base path for the request.
  • uri The PSR7 UriInterface object. If null, one will be created.
  • base The base URL for the request.
  • webroot The webroot directory for the request.
  • input The data that would come from php://input this is useful for simulating requests with put, patch or delete data.
  • session An instance of a Session object

Parameters

string|array $config

An array of request data to create a request with. The string version of this argument is deprecated and will be removed in 4.0.0

contentType()

contentType() : string

Get the content type used in this request.

Returns

string

getSession()

getSession() : \Cake\Http\Session

Returns the instance of the Session object for this request

Returns

\Cake\Http\Session

session()

session(\Cake\Http\Session|null  $session = null) : \Cake\Http\Session

Returns the instance of the Session object for this request

If a session object is passed as first argument it will be set as the session to use for this request

Parameters

\Cake\Http\Session|null $session

the session object to use

Returns

\Cake\Http\Session

clientIp()

clientIp() : string

Get the IP the client is using, or says they are using.

Returns

string —

The client IP.

setTrustedProxies()

setTrustedProxies(array  $proxies) : void

register trusted proxies

Parameters

array $proxies

ips list of trusted proxies

getTrustedProxies()

getTrustedProxies() : array

Get trusted proxies

Returns

array

referer()

referer(boolean  $local = false) : string

Returns the referer that referred this request.

Parameters

boolean $local

Attempt to return a local address. Local addresses do not contain hostnames.

Returns

string —

The referring address for this request.

__call()

__call(string  $name, array  $params) : mixed

Missing method handler, handles wrapping older style isAjax() type methods

Parameters

string $name

The method called

array $params

Array of parameters for the method call

Throws

\BadMethodCallException

when an invalid method is called.

Returns

mixed

__set()

__set(string  $name, mixed  $value) : mixed

Magic set method allows backward compatibility for former public properties

Parameters

string $name

The property being accessed.

mixed $value

The property value.

Returns

mixed —

Either the value of the parameter or null.

__get()

__get(string  $name) : mixed

Magic get method allows access to parsed routing parameters directly on the object.

Allows access to $this->params['controller'] via $this->controller

Parameters

string $name

The property being accessed.

Returns

mixed —

Either the value of the parameter or null.

__isset()

__isset(string  $name) : boolean

Magic isset method allows isset/empty checks on routing parameters.

Parameters

string $name

The property being accessed.

Returns

boolean —

Existence

is()

is(string|array  $type, array  ...$args) : boolean

Check whether or not a Request is a certain type.

Uses the built in detection rules as well as additional rules defined with Cake\Http\ServerRequest::addDetector(). Any detector can be called as is($type) or is$Type().

Parameters

string|array $type

The type of request you want to check. If an array this method will return true if the request matches any type.

array $args variadic

List of arguments

Returns

boolean —

Whether or not the request is the type you are checking.

clearDetectorCache()

clearDetectorCache() : void

Clears the instance detector cache, used by the is() function

isAll()

isAll(array  $types) : boolean

Check that a request matches all the given types.

Allows you to test multiple types and union the results. See Request::is() for how to add additional types and the built-in types.

Parameters

array $types

The types to check.

Returns

boolean —

Success.

addDetector()

addDetector(string  $name, callable|array  $callable) : void

Add a new detector to the list of detectors that a request can use.

There are several different formats and types of detectors that can be set.

Callback detectors

Callback detectors allow you to provide a callable to handle the check. The callback will receive the request object as its only parameter.

addDetector('custom', function ($request) { //Return a boolean });
addDetector('custom', ['SomeClass', 'somemethod']);

Environment value comparison

An environment value comparison, compares a value fetched from env() to a known value the environment value is equality checked against the provided value.

e.g addDetector('post', ['env' => 'REQUEST_METHOD', 'value' => 'POST'])

Pattern value comparison

Pattern value comparison allows you to compare a value fetched from env() to a regular expression.

addDetector('iphone', ['env' => 'HTTP_USER_AGENT', 'pattern' => '/iPhone/i']);

Option based comparison

Option based comparisons use a list of options to create a regular expression. Subsequent calls to add an already defined options detector will merge the options.

addDetector('mobile', ['env' => 'HTTP_USER_AGENT', 'options' => ['Fennec']]);

Request parameter detectors

Allows for custom detectors on the request parameters.

e.g addDetector('requested', ['param' => 'requested', 'value' => 1]

You can also make parameter detectors that accept multiple values using the options key. This is useful when you want to check if a request parameter is in a list of options.

addDetector('extension', ['param' => 'ext', 'options' => ['pdf', 'csv']]

Parameters

string $name

The name of the detector.

callable|array $callable

A callable or options array for the detector definition.

addParams()

addParams(array  $params) : $this

Add parameters to the request's parsed parameter set. This will overwrite any existing parameters.

This modifies the parameters available through $request->getParam().

Parameters

array $params

Array of parameters to merge in

Returns

$this —

The current object, you can chain this method.

addPaths()

addPaths(array  $paths) : $this

Add paths to the requests' paths vars. This will overwrite any existing paths.

Provides an easy way to modify, here, webroot and base.

Parameters

array $paths

Array of paths to merge in

Returns

$this —

The current object, you can chain this method.

here()

here(boolean  $base = true) : string

Get the value of the current requests URL. Will include the query string arguments.

Parameters

boolean $base

Include the base path, set to false to trim the base path off.

Returns

string —

The current request URL including query string args.

header()

header(string  $name) : string|null

Read an HTTP header from the Request information.

If the header is not defined in the request, this method will fallback to reading data from $_SERVER and $_ENV. This fallback behavior is deprecated, and will be removed in 4.0.0

Parameters

string $name

Name of the header you want.

Returns

string|null —

Either null on no header being set or the value of the header.

getHeaders()

getHeaders() : array

Get all headers in the request.

Returns an associative array where the header names are the keys and the values are a list of header values.

While header names are not case-sensitive, getHeaders() will normalize the headers.

Returns

array —

An associative array of headers and their values.

hasHeader()

hasHeader(string  $name) : boolean

Check if a header is set in the request.

Parameters

string $name

The header you want to get (case-insensitive)

Returns

boolean —

Whether or not the header is defined.

getHeader()

getHeader(string  $name) : array

Get a single header from the request.

Return the header value as an array. If the header is not present an empty array will be returned.

Parameters

string $name

The header you want to get (case-insensitive)

Returns

array —

An associative array of headers and their values. If the header doesn't exist, an empty array will be returned.

getHeaderLine()

getHeaderLine(string  $name) : string

Get a single header as a string from the request.

Parameters

string $name

The header you want to get (case-insensitive)

Returns

string —

Header values collapsed into a comma separated string.

withHeader()

withHeader(string  $name, string|array  $value) : static

Get a modified request with the provided header.

Parameters

string $name

The header name.

string|array $value

The header value

Returns

static

withAddedHeader()

withAddedHeader(string  $name, string|array  $value) : static

Get a modified request with the provided header.

Existing header values will be retained. The provided value will be appended into the existing values.

Parameters

string $name

The header name.

string|array $value

The header value

Returns

static

withoutHeader()

withoutHeader(string  $name) : static

Get a modified request without a provided header.

Parameters

string $name

The header name to remove.

Returns

static

method()

method() : string

Get the HTTP method used for this request.

Returns

string —

The name of the HTTP method used.

getMethod()

getMethod() : string

Get the HTTP method used for this request.

There are a few ways to specify a method.

  • If your client supports it you can use native HTTP methods.
  • You can set the HTTP-X-Method-Override header.
  • You can submit an input with the name _method

Any of these 3 approaches can be used to set the HTTP method used by CakePHP internally, and will effect the result of this method.

Returns

string —

The name of the HTTP method used.

withMethod()

withMethod(string  $method) : static

Update the request method and get a new instance.

Parameters

string $method

The HTTP method to use.

Returns

static —

A new instance with the updated method.

getServerParams()

getServerParams() : array

Get all the server environment parameters.

Read all of the 'environment' or 'server' data that was used to create this request.

Returns

array

getQueryParams()

getQueryParams() : array

Get all the query parameters in accordance to the PSR-7 specifications. To read specific query values use the alternative getQuery() method.

Retrieves the deserialized query string arguments, if any.

Note: the query params might not be in sync with the URI or server params. If you need to ensure you are only getting the original values, you may need to parse the query string from getUri()->getQuery() or from the QUERY_STRING server param.

Returns

array

withQueryParams()

withQueryParams(array  $query) : static

Update the query string data and get a new instance.

These values SHOULD remain immutable over the course of the incoming request. They MAY be injected during instantiation, such as from PHP's $_GET superglobal, or MAY be derived from some other value such as the URI. In cases where the arguments are parsed from the URI, the data MUST be compatible with what PHP's parse_str() would return for purposes of how duplicate query parameters are handled, and how nested sets are handled.

Setting query string arguments MUST NOT change the URI stored by the request, nor the values in the server params.

This method MUST be implemented in such a way as to retain the immutability of the message, and MUST return an instance that has the updated query string arguments.

Parameters

array $query

The query string data to use

Returns

static —

A new instance with the updated query string data.

host()

host() : string

Get the host that the request was handled on.

Returns

string

port()

port() : string

Get the port the request was handled on.

Returns

string

scheme()

scheme() : string

Get the current url scheme used for the request.

e.g. 'http', or 'https'

Returns

string —

The scheme used for the request.

domain()

domain(integer  $tldLength = 1) : string

Get the domain name and include $tldLength segments of the tld.

Parameters

integer $tldLength

Number of segments your tld contains. For example: example.com contains 1 tld. While example.co.uk contains 2.

Returns

string —

Domain name without subdomains.

subdomains()

subdomains(integer  $tldLength = 1) : array

Get the subdomains for a host.

Parameters

integer $tldLength

Number of segments your tld contains. For example: example.com contains 1 tld. While example.co.uk contains 2.

Returns

array —

An array of subdomains.

accepts()

accepts(string|null  $type = null) : array|boolean

Find out which content types the client accepts or check if they accept a particular type of content.

Get all types:

$this->request->accepts();

Check for a single type:

$this->request->accepts('application/json');

This method will order the returned content types by the preference values indicated by the client.

Parameters

string|null $type

The content type to check for. Leave null to get all types a client accepts.

Returns

array|boolean —

Either an array of all the types the client accepts or a boolean if they accept the provided type.

parseAccept()

parseAccept() : array

Parse the HTTP_ACCEPT header and return a sorted array with content types as the keys, and pref values as the values.

Generally you want to use Cake\Http\ServerRequest::accept() to get a simple list of the accepted content types.

Returns

array —

An array of prefValue => [content/types]

acceptLanguage()

acceptLanguage(string|null  $language = null) : array|boolean

Get the languages accepted by the client, or check if a specific language is accepted.

Get the list of accepted languages:

\Cake\Http\ServerRequest::acceptLanguage();

Check if a specific language is accepted:

\Cake\Http\ServerRequest::acceptLanguage('es-es');

Parameters

string|null $language

The language to test.

Returns

array|boolean —

If a $language is provided, a boolean. Otherwise the array of accepted languages.

query()

query(string|null  $name = null) : string|array|null

Provides a read accessor for `$this->query`.

Allows you to use a Hash::get() compatible syntax for reading post data.

Parameters

string|null $name

Query string variable name or null to read all.

Returns

string|array|null —

The value being read

getQuery()

getQuery(string|null  $name = null, mixed  $default = null) : null|string|array

Read a specific query value or dotted path.

Developers are encouraged to use getQueryParams() when possible as it is PSR-7 compliant, and this method is not.

PSR-7 Alternative

$value = Hash::get($request->getQueryParams(), 'Post.id', null);

Parameters

string|null $name

The name or dotted path to the query param or null to read all.

mixed $default

The default value if the named parameter is not set, and $name is not null.

Returns

null|string|array —

Query data.

data()

data(string|null  $name = null, mixed  ...$args) : mixed|$this

Provides a read/write accessor for `$this->data`.

Allows you to use a Hash::get() compatible syntax for reading post data.

Reading values.

$request->data('Post.title');

When reading values you will get null for keys/values that do not exist.

Writing values

$request->data('Post.title', 'New post!');

You can write to any value, even paths/keys that do not exist, and the arrays will be created for you.

Parameters

string|null $name

Dot separated name of the value to read/write

mixed $args variadic

The data to set (deprecated)

Returns

mixed|$this —

Either the value being read, or this so you can chain consecutive writes.

getData()

getData(string|null  $name = null, mixed  $default = null) : null|string|array

Provides a safe accessor for request data. Allows you to use Hash::get() compatible paths.

Reading values.

// get all data
$request->getData();

// Read a specific field.
$request->getData('Post.title');

// With a default value.
$request->getData('Post.not there', 'default value');

When reading values you will get null for keys/values that do not exist.

Parameters

string|null $name

Dot separated name of the value to read. Or null to read all data.

mixed $default

The default data.

Returns

null|string|array —

The value being read.

param()

param(string  $name, mixed  ...$args) : mixed|$this

Safely access the values in $this->params.

Parameters

string $name

The name of the parameter to get.

mixed $args variadic

Value to set (deprecated).

Returns

mixed|$this —

The value of the provided parameter. Will return false if the parameter doesn't exist or is falsey.

input()

input(string|null  $callback = null, array  ...$args) : string

Read data from `php://input`. Useful when interacting with XML or JSON request body content.

Getting input with a decoding function:

$this->request->input('json_decode');

Getting input using a decoding function, and additional params:

$this->request->input('Xml::build', ['return' => 'DOMDocument']);

Any additional parameters are applied to the callback in the order they are given.

Parameters

string|null $callback

A decoding callback that will convert the string data to another representation. Leave empty to access the raw input data. You can also supply additional parameters for the decoding callback using var args, see above.

array $args variadic

The additional arguments

Returns

string —

The decoded/processed request data.

cookie()

cookie(string  $key) : null|string

Read cookie data from the request's cookie data.

Parameters

string $key

The key you want to read.

Returns

null|string —

Either the cookie value, or null if the value doesn't exist.

getCookie()

getCookie(string  $key, string  $default = null) : null|array|string

Read cookie data from the request's cookie data.

Parameters

string $key

The key or dotted path you want to read.

string $default

The default value if the cookie is not set.

Returns

null|array|string —

Either the cookie value, or null if the value doesn't exist.

getCookieCollection()

getCookieCollection() : \Cake\Http\Cookie\CookieCollection

Get a cookie collection based on the request's cookies

The CookieCollection lets you interact with request cookies using \Cake\Http\Cookie\Cookie objects and can make converting request cookies into response cookies easier.

This method will create a new cookie collection each time it is called. This is an optimization that allows fewer objects to be allocated until the more complex CookieCollection is needed. In general you should prefer getCookie() and getCookieParams() over this method. Using a CookieCollection is ideal if your cookies contain complex JSON encoded data.

Returns

\Cake\Http\Cookie\CookieCollection

withCookieCollection()

withCookieCollection(\Cake\Http\Cookie\CookieCollection  $cookies) : static

Replace the cookies in the request with those contained in the provided CookieCollection.

Parameters

\Cake\Http\Cookie\CookieCollection $cookies

The cookie collection

Returns

static

getCookieParams()

getCookieParams() : array

Get all the cookie data from the request.

Retrieves cookies sent by the client to the server.

The data MUST be compatible with the structure of the $_COOKIE superglobal.

Returns

array —

An array of cookie data.

withCookieParams()

withCookieParams(array  $cookies) : static

Replace the cookies and get a new request instance.

The data IS NOT REQUIRED to come from the $_COOKIE superglobal, but MUST be compatible with the structure of $_COOKIE. Typically, this data will be injected at instantiation.

This method MUST NOT update the related Cookie header of the request instance, nor related values in the server params.

This method MUST be implemented in such a way as to retain the immutability of the message, and MUST return an instance that has the updated cookie values.

Parameters

array $cookies

The new cookie data to use.

Returns

static

getParsedBody()

getParsedBody() : null|array|object

Get the parsed request body data.

If the request Content-Type is either application/x-www-form-urlencoded or multipart/form-data, and the request method is POST, this will be the post data. For other content types, it may be the deserialized request body.

Returns

null|array|object —

The deserialized body parameters, if any. These will typically be an array or object.

withParsedBody()

withParsedBody(null|array|object  $data) : static

Update the parsed body and get a new instance.

These MAY be injected during instantiation.

If the request Content-Type is either application/x-www-form-urlencoded or multipart/form-data, and the request method is POST, use this method ONLY to inject the contents of $_POST.

The data IS NOT REQUIRED to come from $_POST, but MUST be the results of deserializing the request body content. Deserialization/parsing returns structured data, and, as such, this method ONLY accepts arrays or objects, or a null value if nothing was available to parse.

As an example, if content negotiation determines that the request data is a JSON payload, this method could be used to create a request instance with the deserialized parameters.

This method MUST be implemented in such a way as to retain the immutability of the message, and MUST return an instance that has the updated body parameters.

Parameters

null|array|object $data

The deserialized body data. This will typically be in an array or object.

Returns

static

getProtocolVersion()

getProtocolVersion() : string

Retrieves the HTTP protocol version as a string.

Returns

string —

HTTP protocol version.

withProtocolVersion()

withProtocolVersion(string  $version) : static

Return an instance with the specified HTTP protocol version.

The version string MUST contain only the HTTP version number (e.g., "1.1", "1.0").

Parameters

string $version

HTTP protocol version

Returns

static

getEnv()

getEnv(string  $key, string|null  $default = null) : string|null

Get a value from the request's environment data.

Fallback to using env() if the key is not set in the $environment property.

Parameters

string $key

The key you want to read from.

string|null $default

Default value when trying to retrieve an environment variable's value that does not exist.

Returns

string|null —

Either the environment value, or null if the value doesn't exist.

withEnv()

withEnv(string  $key, string  $value) : static

Update the request with a new environment data element.

Returns an updated request object. This method returns a new request object and does not mutate the request in-place.

Parameters

string $key

The key you want to write to.

string $value

Value to set

Returns

static

env()

env(string  $key, string|null  $value = null, string|null  $default = null) : $this|string|null

Get/Set value from the request's environment data.

Fallback to using env() if key not set in $environment property.

Parameters

string $key

The key you want to read/write from/to.

string|null $value

Value to set. Default null.

string|null $default

Default value when trying to retrieve an environment variable's value that does not exist. The value parameter must be null.

Returns

$this|string|null —

This instance if used as setter, if used as getter either the environment value, or null if the value doesn't exist.

allowMethod()

allowMethod(string|array  $methods) : boolean

Allow only certain HTTP request methods, if the request method does not match a 405 error will be shown and the required "Allow" response header will be set.

Example:

$this->request->allowMethod('post'); or $this->request->allowMethod(['post', 'delete']);

If the request would be GET, response header "Allow: POST, DELETE" will be set and a 405 error will be returned.

Parameters

string|array $methods

Allowed HTTP request methods.

Throws

\Cake\Http\Exception\MethodNotAllowedException

Returns

boolean —

true

setInput()

setInput(string  $input) : void

Modify data originally from `php://input`. Useful for altering json/xml data in middleware or DispatcherFilters before it gets to RequestHandlerComponent

Parameters

string $input

A string to replace original parsed data from input()

withData()

withData(string  $name, mixed  $value) : static

Update the request with a new request data element.

Returns an updated request object. This method returns a new request object and does not mutate the request in-place.

Use withParsedBody() if you need to replace the all request data.

Parameters

string $name

The dot separated path to insert $value at.

mixed $value

The value to insert into the request data.

Returns

static

withoutData()

withoutData(string  $name) : static

Update the request removing a data element.

Returns an updated request object. This method returns a new request object and does not mutate the request in-place.

Parameters

string $name

The dot separated path to remove.

Returns

static

withParam()

withParam(string  $name, mixed  $value) : static

Update the request with a new routing parameter

Returns an updated request object. This method returns a new request object and does not mutate the request in-place.

Parameters

string $name

The dot separated path to insert $value at.

mixed $value

The value to insert into the the request parameters.

Returns

static

getParam()

getParam(string  $name, mixed  $default = false) : mixed

Safely access the values in $this->params.

Parameters

string $name

The name or dotted path to parameter.

mixed $default

The default value if $name is not set. Default false.

Returns

mixed

withAttribute()

withAttribute(string  $name, mixed  $value) : static

Return an instance with the specified request attribute.

This method allows setting a single derived request attribute as described in getAttributes().

This method MUST be implemented in such a way as to retain the immutability of the message, and MUST return an instance that has the updated attribute.

Parameters

string $name

The attribute name.

mixed $value

The value of the attribute.

Returns

static

withoutAttribute()

withoutAttribute(string  $name) : static

Return an instance without the specified request attribute.

This method allows removing a single derived request attribute as described in getAttributes().

This method MUST be implemented in such a way as to retain the immutability of the message, and MUST return an instance that removes the attribute.

Parameters

string $name

The attribute name.

Throws

\InvalidArgumentException

Returns

static

getAttribute()

getAttribute(string  $name, mixed|null  $default = null) : mixed

Read an attribute from the request, or get the default

Retrieves a single derived request attribute as described in getAttributes(). If the attribute has not been previously set, returns the default value as provided.

This method obviates the need for a hasAttribute() method, as it allows specifying a default value to return if the attribute is not found.

Parameters

string $name

The attribute name.

mixed|null $default

The default value if the attribute has not been set.

Returns

mixed

getAttributes()

getAttributes() : array

Get all the attributes in the request.

This will include the params, webroot, base, and here attributes that CakePHP provides.

Returns

array

getUploadedFile()

getUploadedFile(string  $path) : null|\Psr\Http\Message\UploadedFileInterface

Get the uploaded file from a dotted path.

Parameters

string $path

The dot separated path to the file you want.

Returns

null|\Psr\Http\Message\UploadedFileInterface

getUploadedFiles()

getUploadedFiles() : array

Get the array of uploaded files from the request.

This method returns upload metadata in a normalized tree, with each leaf an instance of Psr\Http\Message\UploadedFileInterface.

These values MAY be prepared from $_FILES or the message body during instantiation, or MAY be injected via withUploadedFiles().

Returns

array

withUploadedFiles()

withUploadedFiles(array  $files) : static

Update the request replacing the files, and creating a new instance.

This method MUST be implemented in such a way as to retain the immutability of the message, and MUST return an instance that has the updated body parameters.

Parameters

array $files

An array of uploaded file objects.

Throws

\InvalidArgumentException

when $files contains an invalid object.

Returns

static

withBody()

withBody(\Psr\Http\Message\StreamInterface  $body) : static

Return an instance with the specified message body.

Parameters

\Psr\Http\Message\StreamInterface $body

The new request body

Returns

static

getUri()

getUri() : \Psr\Http\Message\UriInterface

Retrieves the URI instance.

Returns

\Psr\Http\Message\UriInterface

Returns a UriInterface instance representing the URI of the request.

withUri()

withUri(\Psr\Http\Message\UriInterface  $uri, boolean  $preserveHost = false) : static

Return an instance with the specified uri

Warning Replacing the Uri will not update the base, webroot, and url attributes.

Parameters

\Psr\Http\Message\UriInterface $uri

The new request uri

boolean $preserveHost

Whether or not the host should be retained.

Returns

static

withRequestTarget()

withRequestTarget(string  $target) : static

Create a new instance with a specific request-target.

You can use this method to overwrite the request target that is inferred from the request's Uri. This also lets you change the request target's form to an absolute-form, authority-form or asterisk-form

Parameters

string $target

The request target.

Returns

static

getRequestTarget()

getRequestTarget() : string

Retrieves the request's target.

Retrieves the message's request-target either as it was requested, or as set with withRequestTarget(). By default this will return the application relative path without base directory, and the query string defined in the SERVER environment.

Returns

string

getPath()

getPath() : string

Get the path of current request.

Returns

string

offsetGet()

offsetGet(string  $name) : mixed

Array access read implementation

Parameters

string $name

Name of the key being accessed.

Returns

mixed

offsetSet()

offsetSet(string  $name, mixed  $value) : void

Array access write implementation

Parameters

string $name

Name of the key being written

mixed $value

The value being written.

offsetExists()

offsetExists(string  $name) : boolean

Array access isset() implementation

Parameters

string $name

thing to check.

Returns

boolean

offsetUnset()

offsetUnset(string  $name) : void

Array access unset() implementation

Parameters

string $name

Name to unset.

_setConfig()

_setConfig(array  $config) : void

Process the config/settings data into properties.

Parameters

array $config

The config data to use.

_processPost()

_processPost(array  $data) : array

Sets the REQUEST_METHOD environment variable based on the simulated _method HTTP override value. The 'ORIGINAL_REQUEST_METHOD' is also preserved, if you want the read the non-simulated HTTP method the client used.

Parameters

array $data

Array of post data.

Returns

array

_processGet()

_processGet(array  $query, string  $queryString = '') : array

Process the GET parameters and move things into the object.

Parameters

array $query

The array to which the parsed keys/values are being added.

string $queryString

A query string from the URL if provided

Returns

array —

An array containing the parsed query string as keys/values.

_processFiles()

_processFiles(array  $post, array  $files) : array

Process uploaded files and move things onto the post data.

Parameters

array $post

Post data to merge files onto.

array $files

Uploaded files to merge in.

Returns

array —

merged post + file data.

_createUploadedFile()

_createUploadedFile(array  $value) : array|\Psr\Http\Message\UploadedFileInterface

Create an UploadedFile instance from a $_FILES array.

If the value represents an array of values, this method will recursively process the data.

Parameters

array $value

$_FILES struct

Returns

array|\Psr\Http\Message\UploadedFileInterface

_normalizeNestedFiles()

_normalizeNestedFiles(array  $files = array()) : array

Normalize an array of file specifications.

Loops through all nested files and returns a normalized array of UploadedFileInterface instances.

Parameters

array $files

The file data to normalize & convert.

Returns

array —

An array of UploadedFileInterface objects.

_is()

_is(string  $type, array  $args) : boolean

Worker for the public is() function

Parameters

string $type

The type of request you want to check.

array $args

Array of custom detector arguments.

Returns

boolean —

Whether or not the request is the type you are checking.

_acceptHeaderDetector()

_acceptHeaderDetector(array  $detect) : boolean

Detects if a specific accept header is present.

Parameters

array $detect

Detector options array.

Returns

boolean —

Whether or not the request is the type you are checking.

_headerDetector()

_headerDetector(array  $detect) : boolean

Detects if a specific header is present.

Parameters

array $detect

Detector options array.

Returns

boolean —

Whether or not the request is the type you are checking.

_paramDetector()

_paramDetector(array  $detect) : boolean

Detects if a specific request parameter is present.

Parameters

array $detect

Detector options array.

Returns

boolean —

Whether or not the request is the type you are checking.

_environmentDetector()

_environmentDetector(array  $detect) : boolean

Detects if a specific environment variable is present.

Parameters

array $detect

Detector options array.

Returns

boolean —

Whether or not the request is the type you are checking.

normalizeHeaderName()

normalizeHeaderName(string  $name) : string

Normalize a header name into the SERVER version.

Parameters

string $name

The header name.

Returns

string —

The normalized header name.

_parseAcceptWithQualifier()

_parseAcceptWithQualifier(string  $header) : array

Parse Accept* headers with qualifier options.

Only qualifiers will be extracted, any other accept extensions will be discarded as they are not frequently used.

Parameters

string $header

Header to parse.

Returns

array

_readInput()

_readInput() : string

Read data from php://input, mocked in tests.

Returns

string —

contents of php://input

validateUploadedFiles()

validateUploadedFiles(array  $uploadedFiles, string  $path) : void

Recursively validate uploaded file data.

Parameters

array $uploadedFiles

The new files array to validate.

string $path

The path thus far.

Throws

\InvalidArgumentException

If any leaf elements are not valid files.