CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Reporting Security Issues
    • Privacy Policy
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Get Involved
    • Issues (Github)
    • Bakery
    • Featured Resources
    • Training
    • Meetups
    • My CakePHP
    • CakeFest
    • Newsletter
    • Linkedin
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • Help & Support
    • Forum
    • Stack Overflow
    • IRC
    • Slack
    • Paid Support
CakePHP

C CakePHP 3.10 Red Velvet API

  • Project:
    • CakePHP
      • CakePHP
      • Authentication
      • Authorization
      • Chronos
      • Elastic Search
      • Queue
  • Version:
    • 3.10
      • 5.2
      • 5.1
      • 5.0
      • 4.6
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

Namespaces

  • Global
  • Cake
    • Auth
    • Cache
    • Collection
    • Command
    • Console
    • Controller
    • Core
    • Database
    • Datasource
    • Error
    • Event
    • Filesystem
    • Form
    • Http
      • Client
      • Cookie
      • Exception
      • Middleware
      • Session
    • I18n
    • Log
    • Mailer
    • Network
    • ORM
    • Routing
    • Shell
    • TestSuite
    • Utility
    • Validation
    • View

Class ServerRequest

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.

Namespace: Cake\Http

Property Summary

  • $_detectorCache protected
    array

    Instance cache for results of is(something) calls

  • $_detectors protected static
    array

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

  • $_environment protected
    array

    Array of environment data.

  • $_input protected
    string

    Contents of php://input

  • $attributes protected
    array

    Store the additional attributes attached to the request.

  • $base protected deprecated
    string

    Base URL path.

  • $cookies protected deprecated
    array

    Array of cookie data.

  • $data protected deprecated
    array|object|null

    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.

  • $emulatedAttributes protected
    array

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

  • $here protected deprecated
    string

    The full address to the current request

  • $params protected deprecated
    array

    Array of parameters parsed from the URL.

  • $protocol protected
    string|null

    The HTTP protocol version used.

  • $query protected deprecated
    array

    Array of query string arguments

  • $requestTarget protected
    string|null

    The request target if overridden

  • $session protected
    Cake\Http\Session

    Instance of a Session object relative to this request

  • $stream protected
    Psr\Http\Message\StreamInterface

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

  • $trustProxy public
    bool

    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.

  • $trustedProxies protected
    string[]

    Trusted proxies list

  • $uploadedFiles protected
    array

    Array of Psr\Http\Message\UploadedFileInterface objects.

  • $uri protected
    Psr\Http\Message\UriInterface

    Uri instance

  • $url protected deprecated
    string

    The URL string used for the request.

  • $webroot protected deprecated
    string

    webroot path segment for the request.

Method Summary

  • __call() public

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

  • __construct() public

    Create a new request object.

  • __get() public deprecated

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

  • __isset() public deprecated

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

  • __set() public deprecated

    Magic set method allows backward compatibility for former public properties

  • _acceptHeaderDetector() protected

    Detects if a specific accept header is present.

  • _createUploadedFile() protected

    Create an UploadedFile instance from a $_FILES array.

  • _environmentDetector() protected

    Detects if a specific environment variable is present.

  • _headerDetector() protected

    Detects if a specific header is present.

  • _is() protected

    Worker for the public is() function

  • _normalizeNestedFiles() protected

    Normalize an array of file specifications.

  • _paramDetector() protected

    Detects if a specific request parameter is present.

  • _parseAcceptWithQualifier() protected

    Parse Accept* headers with qualifier options.

  • _processFiles() protected

    Process uploaded files and move things onto the post data.

  • _processGet() protected

    Process the GET parameters and move things into the object.

  • _processPost() protected

    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.

  • _readInput() protected

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

  • _setConfig() protected

    Process the config/settings data into properties.

  • acceptLanguage() public

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

  • accepts() public

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

  • addDetector() public static

    Add a new detector to the list of detectors that a request can use. There are several different types of detectors that can be set.

  • addParams() public deprecated

    Add parameters to the request's parsed parameter set. This will overwrite any existing parameters. This modifies the parameters available through $request->getParam().

  • addPaths() public deprecated

    Add paths to the requests' paths vars. This will overwrite any existing paths. Provides an easy way to modify, here, webroot and base.

  • allowMethod() public

    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.

  • clearDetectorCache() public

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

  • clientIp() public

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

  • contentType() public

    Get the content type used in this request.

  • cookie() public deprecated

    Read cookie data from the request's cookie data.

  • createFromGlobals() public static deprecated

    Wrapper method to create a new request from PHP superglobals.

  • data() public deprecated

    Provides a read/write accessor for $this->data. Allows you to use a Hash::get() compatible syntax for reading post data.

  • domain() public

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

  • env() public deprecated

    Get/Set value from the request's environment data. Fallback to using env() if key not set in $environment property.

  • getAttribute() public

    Read an attribute from the request, or get the default

  • getAttributes() public

    Get all the attributes in the request.

  • getBody() public

    Gets the body of the message.

  • getCookie() public

    Read cookie data from the request's cookie data.

  • getCookieCollection() public

    Get a cookie collection based on the request's cookies

  • getCookieParams() public

    Get all the cookie data from the request.

  • getData() public

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

  • getEnv() public

    Get a value from the request's environment data. Fallback to using env() if the key is not set in the $environment property.

  • getHeader() public

    Get a single header from the request.

  • getHeaderLine() public

    Get a single header as a string from the request.

  • getHeaders() public

    Get all headers in the request.

  • getMethod() public

    Get the HTTP method used for this request. There are a few ways to specify a method.

  • getParam() public

    Safely access the values in $this->params.

  • getParsedBody() public

    Get the parsed request body data.

  • getPath() public

    Get the path of current request.

  • getProtocolVersion() public

    Retrieves the HTTP protocol version as a string.

  • getQuery() public

    Read a specific query value or dotted path.

  • getQueryParams() public

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

  • getRequestTarget() public

    Retrieves the request's target.

  • getServerParams() public

    Get all the server environment parameters.

  • getSession() public

    Returns the instance of the Session object for this request

  • getTrustedProxies() public

    Get trusted proxies

  • getUploadedFile() public

    Get the uploaded file from a dotted path.

  • getUploadedFiles() public

    Get the array of uploaded files from the request.

  • getUri() public

    Retrieves the URI instance.

  • hasHeader() public

    Check if a header is set in the request.

  • header() public deprecated

    Read an HTTP header from the Request information.

  • here() public deprecated

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

  • host() public

    Get the host that the request was handled on.

  • input() public

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

  • is() public

    Check whether or not a Request is a certain type.

  • isAll() public

    Check that a request matches all the given types.

  • method() public deprecated

    Get the HTTP method used for this request.

  • normalizeHeaderName() protected

    Normalize a header name into the SERVER version.

  • offsetExists() public deprecated

    Array access isset() implementation

  • offsetGet() public deprecated

    Array access read implementation

  • offsetSet() public deprecated

    Array access write implementation

  • offsetUnset() public deprecated

    Array access unset() implementation

  • param() public deprecated

    Safely access the values in $this->params.

  • parseAccept() public

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

  • port() public

    Get the port the request was handled on.

  • query() public deprecated

    Provides a read accessor for $this->query. Allows you to use a Hash::get() compatible syntax for reading post data.

  • referer() public

    Returns the referer that referred this request.

  • scheme() public

    Get the current url scheme used for the request.

  • session() public deprecated

    Returns the instance of the Session object for this request

  • setInput() public deprecated

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

  • setTrustedProxies() public

    register trusted proxies

  • subdomains() public

    Get the subdomains for a host.

  • validateUploadedFiles() protected

    Recursively validate uploaded file data.

  • withAddedHeader() public

    Get a modified request with the provided header.

  • withAttribute() public

    Return an instance with the specified request attribute.

  • withBody() public

    Return an instance with the specified message body.

  • withCookieCollection() public

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

  • withCookieParams() public

    Replace the cookies and get a new request instance.

  • withData() public

    Update the request with a new request data element.

  • withEnv() public

    Update the request with a new environment data element.

  • withHeader() public

    Get a modified request with the provided header.

  • withMethod() public

    Update the request method and get a new instance.

  • withParam() public

    Update the request with a new routing parameter

  • withParsedBody() public

    Update the parsed body and get a new instance.

  • withProtocolVersion() public

    Return an instance with the specified HTTP protocol version.

  • withQueryParams() public

    Update the query string data and get a new instance.

  • withRequestTarget() public

    Create a new instance with a specific request-target.

  • withUploadedFiles() public

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

  • withUri() public

    Return an instance with the specified uri

  • withoutAttribute() public

    Return an instance without the specified request attribute.

  • withoutData() public

    Update the request removing a data element.

  • withoutHeader() public

    Get a modified request without a provided header.

Method Detail

__call() ¶ public

__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

Returns
mixed
Throws
BadMethodCallException
when an invalid method is called.

__construct() ¶ public

__construct(string|array $config = [])

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
  • mergeFilesAsObjects Whether to merge file uploads as objects (true) or arrays (false).
Parameters
string|array $config optional

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

__get() ¶ public

__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

__isset() ¶ public

__isset(string $name): bool

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

Parameters
string $name

The property being accessed.

Returns
bool

__set() ¶ public

__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

_acceptHeaderDetector() ¶ protected

_acceptHeaderDetector(array $detect): bool

Detects if a specific accept header is present.

Parameters
array $detect

Detector options array.

Returns
bool

_createUploadedFile() ¶ protected

_createUploadedFile(array $value): array|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|UploadedFileInterface

_environmentDetector() ¶ protected

_environmentDetector(array $detect): bool

Detects if a specific environment variable is present.

Parameters
array $detect

Detector options array.

Returns
bool

_headerDetector() ¶ protected

_headerDetector(array $detect): bool

Detects if a specific header is present.

Parameters
array $detect

Detector options array.

Returns
bool

_is() ¶ protected

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

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
bool

_normalizeNestedFiles() ¶ protected

_normalizeNestedFiles(array $files = []): array

Normalize an array of file specifications.

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

Parameters
array $files optional

The file data to normalize & convert.

Returns
array

_paramDetector() ¶ protected

_paramDetector(array $detect): bool

Detects if a specific request parameter is present.

Parameters
array $detect

Detector options array.

Returns
bool

_parseAcceptWithQualifier() ¶ protected

_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

_processFiles() ¶ protected

_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

_processGet() ¶ protected

_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 optional

A query string from the URL if provided

Returns
array

_processPost() ¶ protected

_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

_readInput() ¶ protected

_readInput(): string

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

Returns
string

_setConfig() ¶ protected

_setConfig(array $config): void

Process the config/settings data into properties.

Parameters
array $config

The config data to use.

Returns
void

acceptLanguage() ¶ public

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

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 optional

The language to test.

Returns
array|bool

accepts() ¶ public

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

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 optional

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

Returns
array|bool

addDetector() ¶ public static

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 types of detectors that can be set.

Callback comparison

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 });

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.

addDetector('post', ['env' => 'REQUEST_METHOD', 'value' => 'POST']);

Request parameter comparison

Allows for custom detectors on the request parameters.

addDetector('requested', ['param' => 'requested', 'value' => 1]);

Accept comparison

Allows for detector to compare against Accept header value.

addDetector('csv', ['accept' => 'text/csv']);

Header comparison

Allows for one or more headers to be compared.

addDetector('fancy', ['header' => ['X-Fancy' => 1]);

The param, env and comparison types allow the following value comparison options:

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']]);

You can also make compare against multiple values using the options key. This is useful when you want to check if a request value 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.

Returns
void

addParams() ¶ public

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

addPaths() ¶ public

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

allowMethod() ¶ public

allowMethod(string|array $methods): bool

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.

Returns
bool
Throws
Cake\Http\Exception\MethodNotAllowedException

clearDetectorCache() ¶ public

clearDetectorCache(): void

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

Returns
void

clientIp() ¶ public

clientIp(): string

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

Returns
string

contentType() ¶ public

contentType(): string

Get the content type used in this request.

Returns
string

cookie() ¶ public

cookie(string $key): string|null

Read cookie data from the request's cookie data.

Parameters
string $key

The key you want to read.

Returns
string|null

createFromGlobals() ¶ public static

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

data() ¶ public

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 optional

Dot separated name of the value to read/write

mixed ...$args

The data to set (deprecated)

Returns
mixed|$this

domain() ¶ public

domain(int $tldLength = 1): string

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

Parameters
int $tldLength optional

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

Returns
string

env() ¶ public

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 optional

Value to set. Default null.

string|null $default optional

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

getAttribute() ¶ public

getAttribute(string $name, mixed $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 $default optional

The default value if the attribute has not been set.

Returns
mixed

getAttributes() ¶ public

getAttributes(): array

Get all the attributes in the request.

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

Returns
array

getBody() ¶ public

getBody(): Psr\Http\Message\StreamInterface

Gets the body of the message.

Returns
Psr\Http\Message\StreamInterface

getCookie() ¶ public

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

Read cookie data from the request's cookie data.

Parameters
string $key

The key or dotted path you want to read.

string $default optional

The default value if the cookie is not set.

Returns
string|array|null

getCookieCollection() ¶ public

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

getCookieParams() ¶ public

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

getData() ¶ public

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

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 optional

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

mixed $default optional

The default data.

Returns
array|string|null

getEnv() ¶ public

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 optional

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

Returns
string|null

getHeader() ¶ public

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
Links
http://www.php-fig.org/psr/psr-7/ This method is part of the PSR-7 server request interface.

getHeaderLine() ¶ public

getHeaderLine(string $name): string

Get a single header as a string from the request.

This method returns all of the header values of the given case-insensitive header name as a string concatenated together using a comma.

NOTE: Not all header values may be appropriately represented using comma concatenation. For such headers, use getHeader() instead and supply your own delimiter when concatenating.

If the header does not appear in the message, this method MUST return an empty string.

Parameters
string $name

The header you want to get (case-insensitive)

Returns
string
Links
http://www.php-fig.org/psr/psr-7/ This method is part of the PSR-7 server request interface.

getHeaders() ¶ public

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
Links
http://www.php-fig.org/psr/psr-7/ This method is part of the PSR-7 server request interface.

getMethod() ¶ public

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
Links
http://www.php-fig.org/psr/psr-7/ This method is part of the PSR-7 server request interface.

getParam() ¶ public

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 optional

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

Returns
mixed

getParsedBody() ¶ public

getParsedBody(): object|array|null

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
object|array|null

getPath() ¶ public

getPath(): string

Get the path of current request.

Returns
string

getProtocolVersion() ¶ public

getProtocolVersion(): string

Retrieves the HTTP protocol version as a string.

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

Returns
string

getQuery() ¶ public

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

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 optional

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

mixed $default optional

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

Returns
array|string|null
See Also
ServerRequest::getQueryParams()

getQueryParams() ¶ public

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
Links
http://www.php-fig.org/psr/psr-7/ This method is part of the PSR-7 server request interface.

getRequestTarget() ¶ public

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

getServerParams() ¶ public

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
Links
http://www.php-fig.org/psr/psr-7/ This method is part of the PSR-7 server request interface.

getSession() ¶ public

getSession(): Cake\Http\Session

Returns the instance of the Session object for this request

Returns
Cake\Http\Session

getTrustedProxies() ¶ public

getTrustedProxies(): string[]

Get trusted proxies

Returns
string[]

getUploadedFile() ¶ public

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

Get the uploaded file from a dotted path.

Parameters
string $path

The dot separated path to the file you want.

Returns
Psr\Http\Message\UploadedFileInterface|null

getUploadedFiles() ¶ public

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

getUri() ¶ public

getUri(): Psr\Http\Message\UriInterface

Retrieves the URI instance.

This method MUST return a UriInterface instance.

Returns
Psr\Http\Message\UriInterface

hasHeader() ¶ public

hasHeader(string $name): bool

Check if a header is set in the request.

Parameters
string $name

The header you want to get (case-insensitive)

Returns
bool
Links
http://www.php-fig.org/psr/psr-7/ This method is part of the PSR-7 server request interface.

header() ¶ public

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

here() ¶ public

here(bool $base = true): string

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

Parameters
bool $base optional

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

Returns
string

host() ¶ public

host(): string

Get the host that the request was handled on.

Returns
string

input() ¶ public

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 optional

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

The additional arguments

Returns
string

is() ¶ public

is(string|string[] $type, mixed ...$args): bool

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|string[] $type

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

mixed ...$args

List of arguments

Returns
bool

isAll() ¶ public

isAll(string[] $types): bool

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
string[] $types

The types to check.

Returns
bool
See Also
\Cake\Http\ServerRequest::is()

method() ¶ public

method(): string

Get the HTTP method used for this request.

Returns
string

normalizeHeaderName() ¶ protected

normalizeHeaderName(string $name): string

Normalize a header name into the SERVER version.

Parameters
string $name

The header name.

Returns
string

offsetExists() ¶ public

offsetExists(string $name): bool

Array access isset() implementation

Parameters
string $name

thing to check.

Returns
bool

offsetGet() ¶ public

offsetGet(string $name): mixed

Array access read implementation

Parameters
string $name

Name of the key being accessed.

Returns
mixed

offsetSet() ¶ public

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.

Returns
void

offsetUnset() ¶ public

offsetUnset(string $name): void

Array access unset() implementation

Parameters
string $name

Name to unset.

Returns
void

param() ¶ public

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

Value to set (deprecated).

Returns
mixed|$this

parseAccept() ¶ public

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

port() ¶ public

port(): string

Get the port the request was handled on.

Returns
string

query() ¶ public

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 optional

Query string variable name or null to read all.

Returns
string|array|null

referer() ¶ public

referer(bool $local = false): string

Returns the referer that referred this request.

Parameters
bool $local optional

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

Returns
string

scheme() ¶ public

scheme(): string

Get the current url scheme used for the request.

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

Returns
string

session() ¶ public

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 optional

the session object to use

Returns
Cake\Http\Session

setInput() ¶ public

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()

Returns
void

setTrustedProxies() ¶ public

setTrustedProxies(string[] $proxies): void

register trusted proxies

Parameters
string[] $proxies

ips list of trusted proxies

Returns
void

subdomains() ¶ public

subdomains(int $tldLength = 1): array

Get the subdomains for a host.

Parameters
int $tldLength optional

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

Returns
array

validateUploadedFiles() ¶ protected

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.

Returns
void
Throws
InvalidArgumentException
If any leaf elements are not valid files.

withAddedHeader() ¶ public

withAddedHeader(string $name, string|string[] $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|string[] $value

The header value

Returns
static
Links
http://www.php-fig.org/psr/psr-7/ This method is part of the PSR-7 server request interface.

withAttribute() ¶ public

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

withBody() ¶ public

withBody(StreamInterface $body): static

Return an instance with the specified message body.

The body MUST be a StreamInterface object.

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

Parameters
StreamInterface $body

The new request body

Returns
static

withCookieCollection() ¶ public

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

withCookieParams() ¶ public

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

withData() ¶ public

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

withEnv() ¶ public

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

withHeader() ¶ public

withHeader(string $name, string|string[] $value): static

Get a modified request with the provided header.

While header names are case-insensitive, the casing of the header will be preserved by this function, and returned from getHeaders().

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 new and/or updated header and value.

Parameters
string $name

The header name.

string|string[] $value

The header value

Returns
static
Links
http://www.php-fig.org/psr/psr-7/ This method is part of the PSR-7 server request interface.

withMethod() ¶ public

withMethod(string $method): static

Update the request method and get a new instance.

While HTTP method names are typically all uppercase characters, HTTP method names are case-sensitive and thus implementations SHOULD NOT modify the given string.

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 changed request method.

Parameters
string $method

The HTTP method to use.

Returns
static
Links
http://www.php-fig.org/psr/psr-7/ This method is part of the PSR-7 server request interface.

withParam() ¶ public

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

withParsedBody() ¶ public

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

withProtocolVersion() ¶ public

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

withQueryParams() ¶ public

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
Links
http://www.php-fig.org/psr/psr-7/ This method is part of the PSR-7 server request interface.

withRequestTarget() ¶ public

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
Links
https://tools.ietf.org/html/rfc7230#section-2.7 (for the various request-target forms allowed in request messages)

withUploadedFiles() ¶ public

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.

Returns
static
Throws
InvalidArgumentException
when $files contains an invalid object.

withUri() ¶ public

withUri(UriInterface $uri, bool $preserveHost = false): static

Return an instance with the specified uri

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

Parameters
UriInterface $uri

The new request uri

bool $preserveHost optional

Whether or not the host should be retained.

Returns
static

withoutAttribute() ¶ public

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.

Returns
static
Throws
InvalidArgumentException

withoutData() ¶ public

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

withoutHeader() ¶ public

withoutHeader(string $name): static

Get a modified request without a provided header.

Header resolution MUST be done without case-sensitivity.

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 named header.

Parameters
string $name

The header name to remove.

Returns
static
Links
http://www.php-fig.org/psr/psr-7/ This method is part of the PSR-7 server request interface.

Property Detail

$_detectorCache ¶ protected

Instance cache for results of is(something) calls

Type
array

$_detectors ¶ protected static

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

$_environment ¶ protected

Array of environment data.

Type
array

$_input ¶ protected

Contents of php://input

Type
string

$attributes ¶ protected

Store the additional attributes attached to the request.

Type
array

$base ¶ protected deprecated

Base URL path.

Type
string

$cookies ¶ protected deprecated

Array of cookie data.

Type
array

$data ¶ protected deprecated

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
array|object|null

$emulatedAttributes ¶ protected

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

Type
array

$here ¶ protected deprecated

The full address to the current request

Type
string

$params ¶ protected deprecated

Array of parameters parsed from the URL.

Type
array

$protocol ¶ protected

The HTTP protocol version used.

Type
string|null

$query ¶ protected deprecated

Array of query string arguments

Type
array

$requestTarget ¶ protected

The request target if overridden

Type
string|null

$session ¶ protected

Instance of a Session object relative to this request

Type
Cake\Http\Session

$stream ¶ protected

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

Type
Psr\Http\Message\StreamInterface

$trustProxy ¶ public

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
bool

$trustedProxies ¶ protected

Trusted proxies list

Type
string[]

$uploadedFiles ¶ protected

Array of Psr\Http\Message\UploadedFileInterface objects.

Type
array

$uri ¶ protected

Uri instance

Type
Psr\Http\Message\UriInterface

$url ¶ protected deprecated

The URL string used for the request.

Type
string

$webroot ¶ protected deprecated

webroot path segment for the request.

Type
string
OpenHub
Pingping
Linode
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Reporting Security Issues
  • Privacy Policy
  • Logos & Trademarks
  • Community
  • Get Involved
  • Issues (Github)
  • Bakery
  • Featured Resources
  • Training
  • Meetups
  • My CakePHP
  • CakeFest
  • Newsletter
  • Linkedin
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • Help & Support
  • Forum
  • Stack Overflow
  • IRC
  • Slack
  • Paid Support

Generated using CakePHP API Docs