PHP Class Prado\Web\THttpRequest

THttpRequest provides storage and access scheme for user request sent via HTTP. It also encapsulates a uniform way to parse and construct URLs. User post data can be retrieved from THttpRequest by using it like an associative array. For example, to test if a user supplies a variable named 'param1', you can use, if(isset($request['param1'])) ... equivalent to: if($request->contains('param1')) ... To get the value of 'param1', use, $value=$request['param1']; equivalent to: $value=$request->itemAt('param1'); To traverse the user post data, use foreach($request as $name=>$value) ... Note, POST and GET variables are merged together in THttpRequest. If a variable name appears in both POST and GET data, then POST data takes precedence. To construct a URL that can be recognized by Prado, use {@link constructUrl()}. The format of the recognizable URLs is determined according to {@link setUrlManager UrlManager}. By default, the following two formats are recognized: index.php?ServiceID=ServiceParameter&Name1=Value1&Name2=Value2 index.php/ServiceID,ServiceParameter/Name1,Value1/Name2,Value2 The first format is called 'Get' while the second 'Path', which is specified via {@link setUrlFormat UrlFormat}. For advanced users who want to use their own URL formats, they can write customized URL management modules and install the managers as application modules and set {@link setUrlManager UrlManager}. The ServiceID in the above URLs is as defined in the application configuration (e.g. the default page service's service ID is 'page'). As a consequence, your GET variable names should not conflict with the service IDs that your application supports. THttpRequest also provides the cookies sent by the user, user information such as his browser capabilities, accepted languages, etc. By default, THttpRequest is registered with {@link TApplication} as the request module. It can be accessed via {@link TApplication::getRequest()}.
Since: 3.0
Author: Qiang Xue ([email protected])
Inheritance: extends Prado\TApplicationComponent, implements IteratorAggregate, implements ArrayAccess, implements Countable, implements Prado\IModule
Afficher le fichier Open project: pradosoft/prado Class Usage Examples

Méthodes publiques

Méthode Description
add ( $key, $value ) Adds an item into the request.
clear ( ) Removes all items in the request.
constructUrl ( $serviceID, $serviceParam, $getItems = null, $encodeAmpersand = true, $encodeGetItems = true ) : string Constructs a URL that can be recognized by PRADO.
contains ( $key ) : boolean
count ( ) : integer Returns the number of items in the request.
getAbsoluteApplicationUrl ( $forceSecureConnection = null ) : string
getAcceptTypes ( ) : string
getApplicationFilePath ( ) : string
getApplicationUrl ( ) : string
getBaseUrl ( $forceSecureConnection = null ) : string
getBrowser ( ) : array
getCgiFix ( ) : integer
getContentType ( boolean $mimetypeOnly = true ) : string
getCookies ( ) : THttpCookieCollection
getCount ( ) : integer
getEnableCache ( ) : boolean
getEnableCookieValidation ( ) : boolean
getEnvironmentVariables ( ) : array
getHeaders ( $case = null ) : array
getHttpProtocolVersion ( ) : string
getID ( ) : string
getIsSecureConnection ( ) : boolean
getIterator ( ) : Iterator Returns an iterator for traversing the items in the list.
getKeys ( ) : array
getPathInfo ( ) : string
getQueryString ( ) : string
getRequestResolved ( ) : boolean
getRequestType ( ) : string
getRequestUri ( ) : string
getServerName ( ) : string
getServerPort ( ) : integer
getServerVariables ( ) : array
getServiceID ( ) : string
getServiceParameter ( ) : string
getUploadedFiles ( ) : array
getUrl ( ) : TUri
getUrlFormat ( ) : THttpRequestUrlFormat
getUrlManager ( ) : string
getUrlManagerModule ( ) : TUrlManager
getUrlParamSeparator ( ) : string
getUrlReferrer ( ) : string
getUserAgent ( ) : string
getUserHost ( ) : string
getUserHostAddress ( ) : string
getUserLanguages ( ) : array Returns a list of user preferred languages.
init ( $config ) Initializes the module.
itemAt ( $key ) : mixed Returns the item with the specified key.
offsetExists ( $offset ) : boolean Returns whether there is an element at the specified offset.
offsetGet ( $offset ) : mixed Returns the element at the specified offset.
offsetSet ( $offset, $item ) Sets the element at the specified offset.
offsetUnset ( $offset ) Unsets the element at the specified offset.
remove ( $key ) : mixed Removes an item from the request by its key.
resolveRequest ( $serviceIDs ) : string Resolves the requested service.
setCgiFix ( $value ) Enable this, if you're using PHP via CGI with php.ini setting "cgi.fix_pathinfo=1" and have trouble with friendly URL feature. Enable this only if you really know what you are doing!
setEnableCache ( $value ) Set true to cache the UrlManager instance. Consider to enable this cache when the application defines a lot of TUrlMappingPatterns
setEnableCookieValidation ( $value )
setID ( $value )
setServiceID ( $value ) Sets the requested service ID.
setServiceParameter ( $value ) Sets the requested service parameter.
setUrlFormat ( $value ) Sets the format of URLs constructed and interpretted by the request module.
setUrlManager ( $value ) Sets the URL manager module.
setUrlParamSeparator ( $value )
stripSlashes ( &$data ) : mixed Strips slashes from input data.
toArray ( ) : array

Méthodes protégées

Méthode Description
cacheUrlManager ( $manager ) : boolean Saves the current UrlManager instance to cache.
getCacheKey ( )
loadCachedUrlManager ( ) : TUrlManager Loads UrlManager instance from cache.
parseUrl ( ) : array Parses the request URL and returns an array of input parameters (excluding GET variables).

Method Details

add() public méthode

Note, if the specified key already exists, the old value will be overwritten.
public add ( $key, $value )

cacheUrlManager() protected méthode

Saves the current UrlManager instance to cache.
protected cacheUrlManager ( $manager ) : boolean
Résultat boolean true if UrlManager instance was cached, false otherwise.

clear() public méthode

Removes all items in the request.
public clear ( )

constructUrl() public méthode

The actual construction work is done by the URL manager module. This method may append session information to the generated URL if needed. You may provide your own URL manager module by setting {@link setUrlManager UrlManager} to provide your own URL scheme. Note, the constructed URL does not contain the protocol and hostname part. You may obtain an absolute URL by prepending the constructed URL with {@link getBaseUrl BaseUrl}.
See also: TUrlManager::constructUrl
public constructUrl ( $serviceID, $serviceParam, $getItems = null, $encodeAmpersand = true, $encodeGetItems = true ) : string
Résultat string URL

contains() public méthode

public contains ( $key ) : boolean
Résultat boolean whether the request contains an item with the specified key

count() public méthode

This method is required by \Countable interface.
public count ( ) : integer
Résultat integer number of items in the request.

getAbsoluteApplicationUrl() public méthode

public getAbsoluteApplicationUrl ( $forceSecureConnection = null ) : string
Résultat string entry script URL (w/ host part)

getAcceptTypes() public méthode

public getAcceptTypes ( ) : string
Résultat string user browser accept types

getApplicationFilePath() public méthode

public getApplicationFilePath ( ) : string
Résultat string application entry script file path (processed w/ realpath())

getApplicationUrl() public méthode

public getApplicationUrl ( ) : string
Résultat string entry script URL (w/o host part)

getBaseUrl() public méthode

public getBaseUrl ( $forceSecureConnection = null ) : string
Résultat string schema and hostname of the requested URL

getBrowser() public méthode

See also: get_browser
public getBrowser ( ) : array
Résultat array user browser capabilities

getCacheKey() protected méthode

protected getCacheKey ( )

getCgiFix() public méthode

public getCgiFix ( ) : integer
Résultat integer whether to use ORIG_PATH_INFO and/or ORIG_SCRIPT_NAME. Defaults to 0.

getContentType() public méthode

public getContentType ( boolean $mimetypeOnly = true ) : string
$mimetypeOnly boolean whether to return only the mimetype (default: true)
Résultat string content type (e.g. 'application/json' or 'text/html; encoding=gzip') or null if not specified

getCookies() public méthode

public getCookies ( ) : THttpCookieCollection
Résultat THttpCookieCollection list of cookies to be sent

getCount() public méthode

public getCount ( ) : integer
Résultat integer the number of items in the request

getEnableCache() public méthode

public getEnableCache ( ) : boolean
Résultat boolean true if urlmanager instance should be cached, false otherwise.

getEnableCookieValidation() public méthode

public getEnableCookieValidation ( ) : boolean
Résultat boolean whether cookies should be validated. Defaults to false.

getEnvironmentVariables() public méthode

public getEnvironmentVariables ( ) : array
Résultat array list of environment variables.

getHeaders() public méthode

public getHeaders ( $case = null ) : array
Résultat array

getHttpProtocolVersion() public méthode

public getHttpProtocolVersion ( ) : string
Résultat string the requested http procolol. Blank string if not defined.

getID() public méthode

public getID ( ) : string
Résultat string id of this module

getIsSecureConnection() public méthode

public getIsSecureConnection ( ) : boolean
Résultat boolean if the request is sent via secure channel (https)

getIterator() public méthode

This method is required by the interface \IteratorAggregate.
public getIterator ( ) : Iterator
Résultat Iterator an iterator for traversing the items in the list.

getKeys() public méthode

public getKeys ( ) : array
Résultat array the key list

getPathInfo() public méthode

public getPathInfo ( ) : string
Résultat string part of the request URL after script name and before question mark.

getQueryString() public méthode

public getQueryString ( ) : string
Résultat string part of that request URL after the question mark

getRequestResolved() public méthode

public getRequestResolved ( ) : boolean
Résultat boolean true if request is already resolved, false otherwise.

getRequestType() public méthode

public getRequestType ( ) : string
Résultat string request type, can be GET, POST, HEAD, or PUT

getRequestUri() public méthode

public getRequestUri ( ) : string
Résultat string part of that request URL after the host info (including pathinfo and query string)

getServerName() public méthode

public getServerName ( ) : string
Résultat string server name

getServerPort() public méthode

public getServerPort ( ) : integer
Résultat integer server port number

getServerVariables() public méthode

public getServerVariables ( ) : array
Résultat array list of server variables.

getServiceID() public méthode

public getServiceID ( ) : string
Résultat string requested service ID

getServiceParameter() public méthode

public getServiceParameter ( ) : string
Résultat string requested service parameter

getUploadedFiles() public méthode

public getUploadedFiles ( ) : array
Résultat array list of uploaded files.

getUrl() public méthode

public getUrl ( ) : TUri
Résultat TUri the request URL

getUrlFormat() public méthode

public getUrlFormat ( ) : THttpRequestUrlFormat
Résultat THttpRequestUrlFormat the format of URLs. Defaults to THttpRequestUrlFormat::Get.

getUrlManager() public méthode

public getUrlManager ( ) : string
Résultat string the ID of the URL manager module

getUrlManagerModule() public méthode

public getUrlManagerModule ( ) : TUrlManager
Résultat TUrlManager the URL manager module

getUrlParamSeparator() public méthode

public getUrlParamSeparator ( ) : string
Résultat string separator used to separate GET variable name and value when URL format is Path. Defaults to comma ','.

getUrlReferrer() public méthode

public getUrlReferrer ( ) : string
Résultat string URL referrer, null if not present

getUserAgent() public méthode

public getUserAgent ( ) : string
Résultat string user agent

getUserHost() public méthode

public getUserHost ( ) : string
Résultat string user host name, null if cannot be determined

getUserHostAddress() public méthode

public getUserHostAddress ( ) : string
Résultat string user IP address

getUserLanguages() public méthode

The languages are returned as an array. Each array element represents a single language preference. The languages are ordered according to user preferences. The first language is the most preferred.
public getUserLanguages ( ) : array
Résultat array list of user preferred languages.

init() public méthode

This method is required by IModule and is invoked by application.
public init ( $config )

itemAt() public méthode

This method is exactly the same as {@link offsetGet}.
public itemAt ( $key ) : mixed
Résultat mixed the element at the offset, null if no element is found at the offset

loadCachedUrlManager() protected méthode

Loads UrlManager instance from cache.
protected loadCachedUrlManager ( ) : TUrlManager
Résultat TUrlManager intance if load was successful, null otherwise.

offsetExists() public méthode

This method is required by the interface \ArrayAccess.
public offsetExists ( $offset ) : boolean
Résultat boolean

offsetGet() public méthode

This method is required by the interface \ArrayAccess.
public offsetGet ( $offset ) : mixed
Résultat mixed the element at the offset, null if no element is found at the offset

offsetSet() public méthode

This method is required by the interface \ArrayAccess.
public offsetSet ( $offset, $item )

offsetUnset() public méthode

This method is required by the interface \ArrayAccess.
public offsetUnset ( $offset )

parseUrl() protected méthode

You may override this method to support customized URL format.
See also: TUrlManager::parseUrl
protected parseUrl ( ) : array
Résultat array list of input parameters, indexed by parameter names

remove() public méthode

Removes an item from the request by its key.
public remove ( $key ) : mixed
Résultat mixed the removed value, null if no such key exists.

resolveRequest() public méthode

This method implements a URL-based service resolution. A URL in the format of /index.php?sp=serviceID.serviceParameter will be resolved with the serviceID and the serviceParameter. You may override this method to provide your own way of service resolution.
See also: constructUrl
public resolveRequest ( $serviceIDs ) : string
Résultat string the currently requested service ID, null if no service ID is found

setCgiFix() public méthode

Enable this, if you're using PHP via CGI with php.ini setting "cgi.fix_pathinfo=1" and have trouble with friendly URL feature. Enable this only if you really know what you are doing!
public setCgiFix ( $value )

setEnableCache() public méthode

Set true to cache the UrlManager instance. Consider to enable this cache when the application defines a lot of TUrlMappingPatterns
public setEnableCache ( $value )

setEnableCookieValidation() public méthode

public setEnableCookieValidation ( $value )

setID() public méthode

public setID ( $value )

setServiceID() public méthode

Sets the requested service ID.
public setServiceID ( $value )

setServiceParameter() public méthode

Sets the requested service parameter.
public setServiceParameter ( $value )

setUrlFormat() public méthode

A Get URL format is like index.php?name1=value1&name2=value2 while a Path URL format is like index.php/name1,value1/name2,value. Changing the UrlFormat will affect {@link constructUrl} and how GET variables are parsed.
public setUrlFormat ( $value )

setUrlManager() public méthode

By default, {@link TUrlManager} is used for managing URLs. You may specify a different module for URL managing tasks by loading it as an application module and setting this property with the module ID.
public setUrlManager ( $value )

setUrlParamSeparator() public méthode

public setUrlParamSeparator ( $value )

stripSlashes() public méthode

This method is applied when magic quotes is enabled.
public stripSlashes ( &$data ) : mixed
Résultat mixed processed data

toArray() public méthode

public toArray ( ) : array
Résultat array the list of items in array