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.
- Cake\Http\ServerRequest implements ArrayAccess, Psr\Http\Message\ServerRequestInterface
Properties summary
-
$_detectorCache
protectedarray
Instance cache for results of is(something) calls -
$_detectors
protected staticarray
The built in detectors used withis()
can be modified withaddDetector()
. -
$_environment
protectedarray
Array of environment data. -
$_input
protectedstring
Contents of php://input -
$attributes
protectedarray
Store the additional attributes attached to the request. -
$base
protectedstring
Base URL path. -
$cookies
protectedarray
Array of cookie data. -
$data
protectednull|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.
-
$emulatedAttributes
protectedarray
A list of propertes that emulated by the PSR7 attribute methods. -
$here
protectedstring
The full address to the current request -
$params
protectedarray
Array of parameters parsed from the URL. -
$protocol
protectedstring|null
The HTTP protocol version used. -
$query
protectedarray
Array of query string arguments -
$requestTarget
protectedstring|null
The request target if overridden -
$session
protectedInstance of a Session object relative to this request -
$stream
protectedPsr\Http\Message\StreamInterface
Request body stream. Contains php://input unlessinput
constructor option is used. -
$trustProxy
publicboolean
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
protectedarray
trusted proxies list -
$uploadedFiles
protectedarray
Array of Psr\Http\Message\UploadedFileInterface objects. -
$uri
protectedPsr\Http\Message\UriInterface
Uri instance -
$url
protectedstring
The URL string used for the request. -
$webroot
protectedstring
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
Magic get method allows access to parsed routing parameters directly on the object. -
__isset() public
Magic isset method allows isset/empty checks on routing parameters.
-
__set() public
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 formats and types of detectors that can be set.
-
addParams() public
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
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
Read cookie data from the request's cookie data. -
createFromGlobals() public static
Wrapper method to create a new request from PHP superglobals. -
data() public
Provides a read/write accessor for
$this->data
. Allows you to use aHash::get()
compatible syntax for reading post data. -
domain() public
Get the domain name and include $tldLength segments of the tld. -
env() public
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
Read an HTTP header from the Request information. -
here() public
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
Get the HTTP method used for this request. -
normalizeHeaderName() protected
Normalize a header name into the SERVER version. -
offsetExists() public
Array access isset() implementation -
offsetGet() public
Array access read implementation -
offsetSet() public
Array access write implementation -
offsetUnset() public
Array access unset() implementation -
param() public
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
Provides a read accessor for
$this->query
. Allows you to use aHash::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
Returns the instance of the Session object for this request -
setInput() public
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 )
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
Throws
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 dataquery
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 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 )
Magic get method allows access to parsed routing parameters directly on the object.
Allows access to $this->params['controller']
via $this->controller
Deprecated
3.4.0 Accessing routing parameters through __get will removed in 4.0.0. Use getParam() instead.
Parameters
- string $name
- The property being accessed.
Returns
Either the value of the parameter or null.
__isset() public ¶
__isset( string $name )
Magic isset method allows isset/empty checks on routing parameters.
Deprecated
3.4.0 Accessing routing parameters through __isset will removed in 4.0.0. Use getParam() instead.
Parameters
- string $name
- The property being accessed.
Returns
Existence
__set() public ¶
__set( string $name , mixed $value )
Magic set method allows backward compatibility for former public properties
Deprecated
3.6.0 Public properties will be removed in 4.0.0. Use appropriate setters instead.
Parameters
- string $name
- The property being accessed.
- mixed $value
- The property value.
Returns
Either the value of the parameter or null.
_acceptHeaderDetector() protected ¶
_acceptHeaderDetector( array $detect )
Detects if a specific accept header is present.
Parameters
- array $detect
- Detector options array.
Returns
Whether or not the request is the type you are checking.
_createUploadedFile() protected ¶
_createUploadedFile( array $value )
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
_environmentDetector() protected ¶
_environmentDetector( array $detect )
Detects if a specific environment variable is present.
Parameters
- array $detect
- Detector options array.
Returns
Whether or not the request is the type you are checking.
_headerDetector() protected ¶
_headerDetector( array $detect )
Detects if a specific header is present.
Parameters
- array $detect
- Detector options array.
Returns
Whether or not the request is the type you are checking.
_is() protected ¶
_is( string $type , array $args )
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
Whether or not the request is the type you are checking.
_normalizeNestedFiles() protected ¶
_normalizeNestedFiles( array $files [] )
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
An array of UploadedFileInterface objects.
_paramDetector() protected ¶
_paramDetector( array $detect )
Detects if a specific request parameter is present.
Parameters
- array $detect
- Detector options array.
Returns
Whether or not the request is the type you are checking.
_parseAcceptWithQualifier() protected ¶
_parseAcceptWithQualifier( string $header )
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
_processFiles() protected ¶
_processFiles( array $post , array $files )
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
merged post + file data.
_processGet() protected ¶
_processGet( array $query , string $queryString '' )
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
An array containing the parsed query string as keys/values.
_processPost() protected ¶
_processPost( array $data )
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
_readInput() protected ¶
_readInput( )
Read data from php://input, mocked in tests.
Returns
contents of php://input
_setConfig() protected ¶
_setConfig( array $config )
Process the config/settings data into properties.
Parameters
- array $config
- The config data to use.
acceptLanguage() public ¶
acceptLanguage( string|null $language null )
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 null
- The language to test.
Returns
If a $language is provided, a boolean. Otherwise the array of accepted languages.
accepts() public ¶
accepts( string|null $type null )
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 null
- The content type to check for. Leave null to get all types a client accepts.
Returns
Either an array of all the types the client accepts or a boolean if they accept the provided type.
addDetector() public static ¶
addDetector( string $name , callable|array $callable )
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() public ¶
addParams( array $params )
Add parameters to the request's parsed parameter set. This will overwrite any existing parameters.
This modifies the parameters available through $request->getParam()
.
Deprecated
3.6.0 ServerRequest::addParams() is deprecated. Use withParam()
or
withAttribute('params')
instead.
Parameters
- array $params
- Array of parameters to merge in
Returns
$this The current object, you can chain this method.
addPaths() public ¶
addPaths( array $paths )
Add paths to the requests' paths vars. This will overwrite any existing paths. Provides an easy way to modify, here, webroot and base.
Deprecated
withAttribute()
to modify paths instead.Parameters
- array $paths
- Array of paths to merge in
Returns
$this The current object, you can chain this method.
allowMethod() public ¶
allowMethod( string|array $methods )
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
true
Throws
clearDetectorCache() public ¶
clearDetectorCache( )
Clears the instance detector cache, used by the is() function
clientIp() public ¶
clientIp( )
Get the IP the client is using, or says they are using.
Returns
The client IP.
cookie() public ¶
cookie( string $key )
Read cookie data from the request's cookie data.
Deprecated
Parameters
- string $key
- The key you want to read.
Returns
Either the cookie value, or null if the value doesn't exist.
createFromGlobals() public static ¶
createFromGlobals( )
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.
Deprecated
Cake\Http\ServerRequestFactory
instead.Returns
data() public ¶
data( string|null $name , ... $args )
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.
Deprecated
Parameters
- string|null $name
- Dot separated name of the value to read/write
- ... $args
- $args The data to set (deprecated)
Returns
Cake\Http\ServerRequest
$this Either the value being read, or this so you can chain consecutive writes.
domain() public ¶
domain( integer $tldLength 1 )
Get the domain name and include $tldLength segments of the tld.
Parameters
- integer $tldLength optional 1
Number of segments your tld contains. For example:
example.com
contains 1 tld. Whileexample.co.uk
contains 2.
Returns
Domain name without subdomains.
env() public ¶
env( string $key , string|null $value null , string|null $default null )
Get/Set value from the request's environment data. Fallback to using env() if key not set in $environment property.
Deprecated
Parameters
- string $key
- The key you want to read/write from/to.
- string|null $value optional null
- Value to set. Default null.
- string|null $default optional null
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.
getAttribute() public ¶
getAttribute( string $name , mixed|null $default null )
Read an attribute from the request, or get the default
Parameters
- string $name
- The attribute name.
- mixed|null $default optional null
- The default value if the attribute has not been set.
Returns
getAttributes() public ¶
getAttributes( )
Get all the attributes in the request.
This will include the params, webroot, base, and here attributes that CakePHP provides.
Returns
getBody() public ¶
getBody( )
Gets the body of the message.
Returns
Returns the body as a stream.
getCookie() public ¶
getCookie( string $key , string $default 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 null
- The default value if the cookie is not set.
Returns
Either the cookie value, or null if the value doesn't exist.
getCookieCollection() public ¶
getCookieCollection( )
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
getCookieParams() public ¶
getCookieParams( )
Get all the cookie data from the request.
Returns
An array of cookie data.
getData() public ¶
getData( string|null $name null , mixed $default 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 null
- Dot separated name of the value to read. Or null to read all data.
- mixed $default optional null
- The default data.
Returns
The value being read.
getEnv() public ¶
getEnv( string $key , string|null $default 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 null
Default value when trying to retrieve an environment variable's value that does not exist.
Returns
Either the environment value, or null if the value doesn't exist.
getHeader() public ¶
getHeader( string $name )
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
An associative array of headers and their values. If the header doesn't exist, an empty array will be returned.
Link
getHeaderLine() public ¶
getHeaderLine( string $name )
Get a single header as a string from the request.
Parameters
- string $name
- The header you want to get (case-insensitive)
Returns
Header values collapsed into a comma separated string.
Link
getHeaders() public ¶
getHeaders( )
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
An associative array of headers and their values.
Link
getMethod() public ¶
getMethod( )
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
The name of the HTTP method used.
Link
getParam() public ¶
getParam( string $name , mixed $default false )
Safely access the values in $this->params.
Parameters
- string $name
- The name or dotted path to parameter.
- mixed $default optional false
- The default value if
$name
is not set. Defaultfalse
.
Returns
getParsedBody() public ¶
getParsedBody( )
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
The deserialized body parameters, if any. These will typically be an array or object.
getProtocolVersion() public ¶
getProtocolVersion( )
Retrieves the HTTP protocol version as a string.
Returns
HTTP protocol version.
getQuery() public ¶
getQuery( string|null $name null , mixed $default 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 null
- The name or dotted path to the query param or null to read all.
- mixed $default optional null
- The default value if the named parameter is not set, and $name is not null.
Returns
Query data.
See
getQueryParams() public ¶
getQueryParams( )
Get all the query parameters in accordance to the PSR-7 specifications. To read specific query values use the alternative getQuery() method.
Returns
Link
getRequestTarget() public ¶
getRequestTarget( )
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
getServerParams() public ¶
getServerParams( )
Get all the server environment parameters.
Read all of the 'environment' or 'server' data that was used to create this request.
Returns
Link
getUploadedFile() public ¶
getUploadedFile( string $path )
Get the uploaded file from a dotted path.
Parameters
- string $path
- The dot separated path to the file you want.
Returns
getUploadedFiles() public ¶
getUploadedFiles( )
Get the array of uploaded files from the request.
Returns
getUri() public ¶
getUri( )
Retrieves the URI instance.
Returns
Returns a UriInterface instance representing the URI of the request.
hasHeader() public ¶
hasHeader( string $name )
Check if a header is set in the request.
Parameters
- string $name
- The header you want to get (case-insensitive)
Returns
Whether or not the header is defined.
Link
header() public ¶
header( string $name )
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
Deprecated
Parameters
- string $name
- Name of the header you want.
Returns
Either null on no header being set or the value of the header.
here() public ¶
here( boolean $base true )
Get the value of the current requests URL. Will include the query string arguments.
Deprecated
Parameters
- boolean $base optional true
- Include the base path, set to false to trim the base path off.
Returns
The current request URL including query string args.
input() public ¶
input( string|null $callback , ... $args )
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.
- ... $args
- $args The additional arguments
Returns
The decoded/processed request data.
is() public ¶
is( string|array $type , ... $args )
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.
- ... $args
- $args List of arguments
Returns
Whether or not the request is the type you are checking.
isAll() public ¶
isAll( array $types )
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
Success.
See
method() public ¶
method( )
Get the HTTP method used for this request.
Deprecated
Returns
The name of the HTTP method used.
normalizeHeaderName() protected ¶
normalizeHeaderName( string $name )
Normalize a header name into the SERVER version.
Parameters
- string $name
- The header name.
Returns
The normalized header name.
offsetExists() public ¶
offsetExists( string $name )
Array access isset() implementation
Deprecated
Parameters
- string $name
- thing to check.
Returns
Implementation of
ArrayAccess::offsetExists()
offsetGet() public ¶
offsetGet( string $name )
Array access read implementation
Deprecated
Parameters
- string $name
- Name of the key being accessed.
Returns
Implementation of
ArrayAccess::offsetGet()
offsetSet() public ¶
offsetSet( string $name , mixed $value )
Array access write implementation
Deprecated
Parameters
- string $name
- Name of the key being written
- mixed $value
- The value being written.
Implementation of
ArrayAccess::offsetSet()
offsetUnset() public ¶
offsetUnset( string $name )
Array access unset() implementation
Deprecated
Parameters
- string $name
- Name to unset.
Implementation of
ArrayAccess::offsetUnset()
param() public ¶
param( string $name , ... $args )
Safely access the values in $this->params.
Deprecated
Parameters
- string $name
- The name of the parameter to get.
- ... $args
- $args Value to set (deprecated).
Returns
Cake\Http\ServerRequest
$this The value of the provided parameter. Will return false if the parameter doesn't exist or is falsey.
parseAccept() public ¶
parseAccept( )
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
An array of prefValue => [content/types]
query() public ¶
query( string|null $name null )
Provides a read accessor for $this->query
.
Allows you to use a Hash::get()
compatible syntax for reading post data.
Deprecated
Parameters
- string|null $name optional null
- Query string variable name or null to read all.
Returns
The value being read
referer() public ¶
referer( boolean $local false )
Returns the referer that referred this request.
Parameters
- boolean $local optional false
Attempt to return a local address. Local addresses do not contain hostnames.
Returns
The referring address for this request.
scheme() public ¶
scheme( )
Get the current url scheme used for the request.
e.g. 'http', or 'https'
Returns
The scheme used for the request.
session() public ¶
session( Cake\Http\Session
$session null )
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
Deprecated
Parameters
-
Cake\Http\Session
$session optional null - the session object to use
Returns
setInput() public ¶
setInput( string $input )
Modify data originally from php://input
. Useful for altering json/xml data
in middleware or DispatcherFilters before it gets to RequestHandlerComponent
Deprecated
Parameters
- string $input
- A string to replace original parsed data from input()
setTrustedProxies() public ¶
setTrustedProxies( array $proxies )
register trusted proxies
Parameters
- array $proxies
- ips list of trusted proxies
subdomains() public ¶
subdomains( integer $tldLength 1 )
Get the subdomains for a host.
Parameters
- integer $tldLength optional 1
Number of segments your tld contains. For example:
example.com
contains 1 tld. Whileexample.co.uk
contains 2.
Returns
An array of subdomains.
validateUploadedFiles() protected ¶
validateUploadedFiles( array $uploadedFiles , string $path )
Recursively validate uploaded file data.
Parameters
- array $uploadedFiles
- The new files array to validate.
- string $path
- The path thus far.
Throws
If any leaf elements are not valid files.
withAddedHeader() public ¶
withAddedHeader( string $name , string|array $value )
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
Link
withAttribute() public ¶
withAttribute( string $name , mixed $value )
Return an instance with the specified request attribute.
Parameters
- string $name
- The attribute name.
- mixed $value
- The value of the attribute.
Returns
withBody() public ¶
withBody( Psr\Http\Message\StreamInterface $body )
Return an instance with the specified message body.
Parameters
- Psr\Http\Message\StreamInterface $body
- The new request body
Returns
withCookieCollection() public ¶
withCookieCollection( Cake\Http\Cookie\CookieCollection
$cookies )
Replace the cookies in the request with those contained in the provided CookieCollection.
Parameters
-
Cake\Http\Cookie\CookieCollection
$cookies - The cookie collection
Returns
withCookieParams() public ¶
withCookieParams( array $cookies )
Replace the cookies and get a new request instance.
Parameters
- array $cookies
- The new cookie data to use.
Returns
withData() public ¶
withData( string $name , mixed $value )
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
withEnv() public ¶
withEnv( string $key , string $value )
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
withHeader() public ¶
withHeader( string $name , string|array $value )
Get a modified request with the provided header.
Parameters
- string $name
- The header name.
- string|array $value
- The header value
Returns
Link
withMethod() public ¶
withMethod( string $method )
Update the request method and get a new instance.
Parameters
- string $method
- The HTTP method to use.
Returns
Link
withParam() public ¶
withParam( string $name , mixed $value )
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
withParsedBody() public ¶
withParsedBody( null|array|object $data )
Update the parsed body and get a new instance.
Parameters
- null|array|object $data
The deserialized body data. This will typically be in an array or object.
Returns
withProtocolVersion() public ¶
withProtocolVersion( string $version )
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
withQueryParams() public ¶
withQueryParams( array $query )
Update the query string data and get a new instance.
Parameters
- array $query
- The query string data to use
Returns
Link
withRequestTarget() public ¶
withRequestTarget( string $target )
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
Link
withUploadedFiles() public ¶
withUploadedFiles( array $files )
Update the request replacing the files, and creating a new instance.
Parameters
- array $files
- An array of uploaded file objects.
Returns
Throws
when $files contains an invalid object.
withUri() public ¶
withUri( Psr\Http\Message\UriInterface $uri , boolean $preserveHost false )
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 optional false
- Whether or not the host should be retained.
Returns
withoutAttribute() public ¶
withoutAttribute( string $name )
Return an instance without the specified request attribute.
Parameters
- string $name
- The attribute name.
Returns
Throws
withoutData() public ¶
withoutData( string $name )
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
withoutHeader() public ¶
withoutHeader( string $name )
Get a modified request without a provided header.
Parameters
- string $name
- The header name to remove.
Returns
Link
Properties detail
$_detectors ¶
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.
[ 'get' => ['env' => 'REQUEST_METHOD', 'value' => 'GET'], 'post' => ['env' => 'REQUEST_METHOD', 'value' => 'POST'], 'put' => ['env' => 'REQUEST_METHOD', 'value' => 'PUT'], 'patch' => ['env' => 'REQUEST_METHOD', 'value' => 'PATCH'], 'delete' => ['env' => 'REQUEST_METHOD', 'value' => 'DELETE'], 'head' => ['env' => 'REQUEST_METHOD', 'value' => 'HEAD'], 'options' => ['env' => 'REQUEST_METHOD', 'value' => 'OPTIONS'], 'ssl' => ['env' => 'HTTPS', 'options' => [1, 'on']], 'ajax' => ['env' => 'HTTP_X_REQUESTED_WITH', 'value' => 'XMLHttpRequest'], 'flash' => ['env' => 'HTTP_USER_AGENT', 'pattern' => '/^(Shockwave|Adobe) Flash/'], 'requested' => ['param' => 'requested', 'value' => 1], 'json' => ['accept' => ['application/json'], 'param' => '_ext', 'value' => 'json'], 'xml' => ['accept' => ['application/xml', 'text/xml'], 'param' => '_ext', 'value' => 'xml'], ]
$base ¶
Base URL path.
Deprecated
$cookies ¶
Array of cookie data.
Deprecated
[]
$data ¶
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.
Deprecated
[]
$emulatedAttributes ¶
A list of propertes that emulated by the PSR7 attribute methods.
['session', 'webroot', 'base', 'params', 'here']
$here ¶
The full address to the current request
Deprecated
$params ¶
Array of parameters parsed from the URL.
Deprecated
[ 'plugin' => null, 'controller' => null, 'action' => null, '_ext' => null, 'pass' => [] ]
$query ¶
Array of query string arguments
Deprecated
[]
$stream ¶
Request body stream. Contains php://input unless input
constructor option is used.
$trustProxy ¶
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.
false