Symfony2 API
Class

Symfony\Component\HttpFoundation\Request

class Request

Request represents an HTTP request.

The methods dealing with URL accept / return a raw path (% encoded):
* getBasePath
* getBaseUrl
* getPathInfo
* getRequestUri
* getUri
* getUriForPath

Properties

ParameterBag $attributes
ParameterBag $request
ParameterBag $query
ServerBag $server
FileBag $files
ParameterBag $cookies
HeaderBag $headers

Methods

__construct(array $query = array(), array $request = array(), array $attributes = array(), array $cookies = array(), array $files = array(), array $server = array(), string $content = null)

Constructor.

initialize(array $query = array(), array $request = array(), array $attributes = array(), array $cookies = array(), array $files = array(), array $server = array(), string $content = null)

Sets the parameters for this request.

static Request createFromGlobals()

Creates a new request with values from PHP's super globals.

static Request create(string $uri, string $method = 'GET', array $parameters = array(), array $cookies = array(), array $files = array(), array $server = array(), string $content = null)

Creates a Request based on a given URI and configuration.

Request duplicate(array $query = null, array $request = null, array $attributes = null, array $cookies = null, array $files = null, array $server = null)

Clones a request and overrides some of its parameters.

__clone()

Clones the current request.

string __toString()

Returns the request as a string.

overrideGlobals()

Overrides the PHP global variables according to this request instance.

static  trustProxyData()

Trusts $_SERVER entries coming from proxies.

static boolean isProxyTrusted()

Returns true if $_SERVER entries coming from proxies are trusted, false otherwise.

static string normalizeQueryString(string $qs)

Normalizes a query string.

mixed get(string $key, mixed $default = null, Boolean $deep = false)

Gets a "parameter" value.

SessionInterface|null getSession()

Gets the Session.

boolean hasPreviousSession()

Whether the request contains a Session which was started in one of the previous requests.

boolean hasSession()

Whether the request contains a Session object.

setSession(SessionInterface $session)

Sets the Session.

string getClientIp()

Returns the client IP address.

string getScriptName()

Returns current script name.

string getPathInfo()

Returns the path being requested relative to the executed script.

string getBasePath()

Returns the root path from which this request is executed.

string getBaseUrl()

Returns the root url from which this request is executed.

string getScheme()

Gets the request's scheme.

string getPort()

Returns the port on which the request is made.

string|null getUser()

Returns the user.

string|null getPassword()

Returns the password.

string getUserInfo()

Gets the user info.

string getHttpHost()

Returns the HTTP host being requested.

string getRequestUri()

Returns the requested URI.

string getSchemeAndHttpHost()

Gets the scheme and HTTP host.

string getUri()

Generates a normalized URI for the Request.

string getUriForPath(string $path)

Generates a normalized URI for the given path.

string|null getQueryString()

Generates the normalized query string for the Request.

Boolean isSecure()

Checks whether the request is secure or not.

string getHost()

Returns the host name.

setMethod(string $method)

Sets the request method.

string getMethod()

Gets the request method.

string getMimeType(string $format)

Gets the mime type associated with the format.

string|null getFormat(string $mimeType)

Gets the format associated with the mime type.

setFormat(string $format, string|array $mimeTypes)

Associates a format with mime types.

string getRequestFormat(string $default = 'html')

Gets the request format.

setRequestFormat(string $format)

Sets the request format.

string|null getContentType()

Gets the format associated with the request.

setDefaultLocale(string $locale)

Sets the default locale.

setLocale(string $locale)

Sets the locale.

string getLocale()

Get the locale.

Boolean isMethod(string $method)

Checks if the request method is of specified type.

Boolean isMethodSafe()

Checks whether the method is safe or not.

string|resource getContent(Boolean $asResource = false)

Returns the request body content.

array getETags()

Gets the Etags.

Boolean isNoCache()

string|null getPreferredLanguage(array $locales = null)

Returns the preferred language.

array getLanguages()

Gets a list of languages acceptable by the client browser.

array getCharsets()

Gets a list of charsets acceptable by the client browser.

array getAcceptableContentTypes()

Gets a list of content types acceptable by the client browser

Boolean isXmlHttpRequest()

Returns true if the request is a XMLHttpRequest.

array splitHttpAcceptHeader(string $header)

Splits an Accept-* HTTP header.

Details

at line 167
public __construct(array $query = array(), array $request = array(), array $attributes = array(), array $cookies = array(), array $files = array(), array $server = array(), string $content = null)

Constructor.

Parameters

array $query The GET parameters
array $request The POST parameters
array $attributes The request attributes (parameters parsed from the PATH_INFO, ...)
array $cookies The COOKIE parameters
array $files The FILES parameters
array $server The SERVER parameters
string $content The raw body data

at line 187
public initialize(array $query = array(), array $request = array(), array $attributes = array(), array $cookies = array(), array $files = array(), array $server = array(), string $content = null)

Sets the parameters for this request.

This method also re-initializes all properties.

Parameters

array $query The GET parameters
array $request The POST parameters
array $attributes The request attributes (parameters parsed from the PATH_INFO, ...)
array $cookies The COOKIE parameters
array $files The FILES parameters
array $server The SERVER parameters
string $content The raw body data

at line 216
static public Request createFromGlobals()

Creates a new request with values from PHP's super globals.

Return Value

Request A new request

at line 245
static public Request create(string $uri, string $method = 'GET', array $parameters = array(), array $cookies = array(), array $files = array(), array $server = array(), string $content = null)

Creates a Request based on a given URI and configuration.

Parameters

string $uri The URI
string $method The HTTP method
array $parameters The query (GET) or request (POST) parameters
array $cookies The request cookies ($_COOKIE)
array $files The request files ($_FILES)
array $server The server parameters ($_SERVER)
string $content The raw body data

Return Value

Request A Request instance

at line 339
public Request duplicate(array $query = null, array $request = null, array $attributes = null, array $cookies = null, array $files = null, array $server = null)

Clones a request and overrides some of its parameters.

Parameters

array $query The GET parameters
array $request The POST parameters
array $attributes The request attributes (parameters parsed from the PATH_INFO, ...)
array $cookies The COOKIE parameters
array $files The FILES parameters
array $server The SERVER parameters

Return Value

Request The duplicated request

at line 380
public __clone()

Clones the current request.

Note that the session is not cloned as duplicated requests
are most of the time sub-requests of the main one.

at line 396
public string __toString()

Returns the request as a string.

Return Value

string The request

at line 412
public overrideGlobals()

Overrides the PHP global variables according to this request instance.

It overrides $_GET, $_POST, $_REQUEST, $_SERVER, $_COOKIE.
$_FILES is never override, see rfc1867

at line 447
static public trustProxyData()

Trusts $_SERVER entries coming from proxies.

You should only call this method if your application
is hosted behind a reverse proxy that you manage.

at line 458
static public boolean isProxyTrusted()

Returns true if $_SERVER entries coming from proxies are trusted, false otherwise.

Return Value

boolean

at line 473
static public string normalizeQueryString(string $qs)

Normalizes a query string.

It builds a normalized query string, where keys/value pairs are alphabetized,
have consistent escaping and unneeded delimiters are removed.

Parameters

string $qs Query string

Return Value

string A normalized query string for the Request

at line 527
public mixed get(string $key, mixed $default = null, Boolean $deep = false)

Gets a "parameter" value.

This method is mainly useful for libraries that want to provide some flexibility.

Order of precedence: GET, PATH, POST, COOKIE

Avoid using this method in controllers:

* slow
* prefer to get from a "named" source

It is better to explicitly get request parameters from the appropriate
public property instead (query, request, attributes, ...).

Parameters

string $key the key
mixed $default the default value
Boolean $deep is parameter deep in multidimensional array

Return Value

mixed

at line 539
public SessionInterface|null getSession()

Gets the Session.

Return Value

SessionInterface|null The session

at line 552
public boolean hasPreviousSession()

Whether the request contains a Session which was started in one of the previous requests.

Return Value

boolean

at line 565
public boolean hasSession()

Whether the request contains a Session object.

Return Value

boolean

at line 577
public setSession(SessionInterface $session)

Sets the Session.

Parameters

SessionInterface $session The Session

at line 589
public string getClientIp()

Returns the client IP address.

Return Value

string The client IP address

at line 619
public string getScriptName()

Returns current script name.

Return Value

string

at line 640
public string getPathInfo()

Returns the path being requested relative to the executed script.

The path info always starts with a /.

Suppose this request is instantiated from /mysite on localhost:

* http://localhost/mysite returns an empty string
* http://localhost/mysite/about returns '/about'
* htpp://localhost/mysite/enco%20ded returns '/enco%20ded'
* http://localhost/mysite/about?var=1 returns '/about'

Return Value

string The raw path (i.e. not urldecoded)

at line 663
public string getBasePath()

Returns the root path from which this request is executed.

Suppose that an index.php file instantiates this request object:

* http://localhost/index.php returns an empty string
* http://localhost/index.php/page returns an empty string
* http://localhost/web/index.php returns '/web'
* http://localhost/we%20b/index.php returns '/we%20b'

Return Value

string The raw path (i.e. not urldecoded)

at line 684
public string getBaseUrl()

Returns the root url from which this request is executed.

The base URL never ends with a /.

This is similar to getBasePath(), except that it also includes the
script filename (e.g. index.php) if one exists.

Return Value

string The raw url (i.e. not urldecoded)

at line 700
public string getScheme()

Gets the request's scheme.

Return Value

string

at line 712
public string getPort()

Returns the port on which the request is made.

Return Value

string

at line 726
public string|null getUser()

Returns the user.

Return Value

string|null

at line 736
public string|null getPassword()

Returns the password.

Return Value

string|null

at line 746
public string getUserInfo()

Gets the user info.

Return Value

string A user name and, optionally, scheme-specific information about how to gain authorization to access the server

at line 767
public string getHttpHost()

Returns the HTTP host being requested.

The port name will be appended to the host if it's non-standard.

Return Value

string

at line 786
public string getRequestUri()

Returns the requested URI.

Return Value

string The raw URI (i.e. not urldecoded)

at line 800
public string getSchemeAndHttpHost()

Gets the scheme and HTTP host.

Return Value

string The scheme and HTTP host

at line 814
public string getUri()

Generates a normalized URI for the Request.

Return Value

string A normalized URI for the Request

See also

getQueryString()

at line 833
public string getUriForPath(string $path)

Generates a normalized URI for the given path.

Parameters

string $path A path to use instead of the current one

Return Value

string The normalized URI for the path

at line 848
public string|null getQueryString()

Generates the normalized query string for the Request.

It builds a normalized query string, where keys/value pairs are alphabetized
and have consistent escaping.

Return Value

string|null A normalized query string for the Request

at line 862
public Boolean isSecure()

Checks whether the request is secure or not.

Return Value

Boolean

at line 880
public string getHost()

Returns the host name.

Return Value

string

at line 908
public setMethod(string $method)

Sets the request method.

Parameters

string $method

at line 923
public string getMethod()

Gets the request method.

The method is always an uppercased string.

Return Value

string The request method

at line 944
public string getMimeType(string $format)

Gets the mime type associated with the format.

Parameters

string $format The format

Return Value

string The associated mime type (null if not found)

at line 962
public string|null getFormat(string $mimeType)

Gets the format associated with the mime type.

Parameters

string $mimeType The associated mime type

Return Value

string|null The format (null if not found)

at line 989
public setFormat(string $format, string|array $mimeTypes)

Associates a format with mime types.

Parameters

string $format The format
string|array $mimeTypes The associated mime types (the preferred one must be the first as it will be used as the content type)

at line 1013
public string getRequestFormat(string $default = 'html')

Gets the request format.

Here is the process to determine the format:

* format defined by the user (with setRequestFormat())
* _format request parameter
* $default

Parameters

string $default The default format

Return Value

string The request format

at line 1029
public setRequestFormat(string $format)

Sets the request format.

Parameters

string $format The request format.

at line 1041
public string|null getContentType()

Gets the format associated with the request.

Return Value

string|null The format (null if no content type is present)

at line 1053
public setDefaultLocale(string $locale)

Sets the default locale.

Parameters

string $locale

at line 1065
public setLocale(string $locale)

Sets the locale.

Parameters

string $locale

at line 1075
public string getLocale()

Get the locale.

Return Value

string

at line 1087
public Boolean isMethod(string $method)

Checks if the request method is of specified type.

Parameters

string $method Uppercase request method (GET, POST etc).

Return Value

Boolean

at line 1099
public Boolean isMethodSafe()

Checks whether the method is safe or not.

Return Value

Boolean

at line 1111
public string|resource getContent(Boolean $asResource = false)

Returns the request body content.

Parameters

Boolean $asResource If true, a resource will be returned

Return Value

string|resource The request body content or a resource to read the body stream.

at line 1135
public array getETags()

Gets the Etags.

Return Value

array The entity tags

at line 1143
public Boolean isNoCache()

Return Value

Boolean

at line 1157
public string|null getPreferredLanguage(array $locales = null)

Returns the preferred language.

Parameters

array $locales An array of ordered available locales

Return Value

string|null The preferred locale

at line 1181
public array getLanguages()

Gets a list of languages acceptable by the client browser.

Return Value

array Languages ordered in the user browser preferences

at line 1223
public array getCharsets()

Gets a list of charsets acceptable by the client browser.

Return Value

array List of charsets in preferable order

at line 1239
public array getAcceptableContentTypes()

Gets a list of content types acceptable by the client browser

Return Value

array List of content types in preferable order

at line 1258
public Boolean isXmlHttpRequest()

Returns true if the request is a XMLHttpRequest.

It works if your JavaScript library set an X-Requested-With HTTP header.
It is known to work with Prototype, Mootools, jQuery.

Return Value

Boolean true if the request is an XMLHttpRequest, false otherwise

at line 1270
public array splitHttpAcceptHeader(string $header)

Splits an Accept-* HTTP header.

Parameters

string $header Header to split

Return Value

array Array indexed by the values of the Accept-* header in preferred order