THttpRequest class
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 constructUrl(). The format of the recognizable URLs is determined according to 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
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
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 TApplication as the request module. It can be accessed via TApplication::getRequest().
| Method Summary |
|
void
|
add
( mixed $key, mixed $value)
Adds an item into the request.
|
|
void
|
Removes all items in the request.
|
|
string
|
constructUrl
( string $serviceID, string $serviceParam, array $getItems, boolean $encodeAmpersand, boolean $encodeGetItems)
Constructs a URL that can be recognized by PRADO.
|
|
boolean
|
|
|
integer
|
Returns the number of items in the request.
|
|
string
|
|
|
string
|
|
|
string
|
|
|
string
|
|
|
string
|
|
|
array
|
|
|
THttpCookieCollection
|
|
|
integer
|
|
|
boolean
|
|
|
array
|
|
|
string
|
|
|
string
|
|
|
boolean
|
|
|
Iterator
|
Returns an iterator for traversing the items in the list.
|
|
array
|
|
|
string
|
|
|
string
|
|
|
boolean
|
|
|
string
|
|
|
string
|
|
|
string
|
|
|
integer
|
|
|
array
|
|
|
string
|
|
|
string
|
|
|
array
|
|
|
TUri
|
|
|
THttpRequestUrlFormat
|
|
|
string
|
|
|
TUrlManager
|
|
|
string
|
|
|
string
|
|
|
string
|
|
|
string
|
|
|
string
|
|
|
array
|
Returns a list of user preferred languages.
|
|
void
|
Initializes the module.
|
|
mixed
|
Returns the item with the specified key.
|
|
boolean
|
Returns whether there is an element at the specified offset.
|
|
mixed
|
Returns the element at the specified offset.
|
|
void
|
Sets the element at the specified offset.
|
|
void
|
Unsets the element at the specified offset.
|
|
protected
array
|
Parses the request URL and returns an array of input parameters (excluding GET variables).
|
|
mixed
|
Removes an item from the request by its key.
|
|
string
|
Resolves the requested service.
|
|
void
|
|
|
void
|
|
|
void
|
Sets the requested service ID.
|
|
void
|
Sets the requested service parameter.
|
|
void
|
Sets the format of URLs constructed and interpretted by the request module.
|
|
void
|
Sets the URL manager module.
|
|
void
|
|
|
mixed
|
Strips slashes from input data.
|
|
array
|
|
| Method Details |
add
| public void add |
(mixed $key , mixed $value ) |
Adds an item into the request.
Note, if the specified key already exists, the old value will be overwritten.
| Input |
| mixed | $key | key |
| mixed | $value | value |
| Output |
| Exception |
|
clear
Removes all items in the request.
|
constructUrl
| public string constructUrl |
(string $serviceID , string $serviceParam , array $getItems , boolean $encodeAmpersand , boolean $encodeGetItems ) |
Constructs a URL that can be recognized by PRADO.
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 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 BaseUrl.
| Input |
| string | $serviceID | service ID |
| string | $serviceParam | service parameter |
| array | $getItems | GET parameters, null if not needed |
| boolean | $encodeAmpersand | whether to encode the ampersand in URL, defaults to true. |
| boolean | $encodeGetItems | whether to encode the GET parameters (their names and values), defaults to false. |
| Output |
|
string
| URL |
| Exception |
|
contains
| public boolean contains |
(mixed $key ) |
| Input |
| mixed | $key | the key |
| Output |
|
boolean
| whether the request contains an item with the specified key |
| Exception |
|
count
Returns the number of items in the request.
This method is required by Countable interface.
| Output |
|
integer
| number of items in the request. |
| Exception |
|
getAbsoluteApplicationUrl
| public string getAbsoluteApplicationUrl |
(boolean $forceSecureConnection ) |
| Input |
| boolean | $forceSecureConnection | whether to use HTTPS instead of HTTP even if the current request is sent via HTTP |
| Output |
|
string
| entry script URL (w/ host part) |
| Exception |
|
getAcceptTypes
| public string getAcceptTypes |
() |
| Output |
|
string
| user browser accept types |
| Exception |
|
getApplicationFilePath
| public string getApplicationFilePath |
() |
| Output |
|
string
| application entry script file path (processed w/ realpath()) |
| Exception |
|
getApplicationUrl
| public string getApplicationUrl |
() |
| Output |
|
string
| entry script URL (w/o host part) |
| Exception |
|
getBaseUrl
| public string getBaseUrl |
(boolean $forceSecureConnection ) |
| Input |
| boolean | $forceSecureConnection | whether to use HTTPS instead of HTTP even if the current request is sent via HTTP |
| Output |
|
string
| schema and hostname of the requested URL |
| Exception |
|
getBrowser
| public array getBrowser |
() |
| Output |
|
array
| user browser capabilities |
| Exception |
|
getCookies
|
getCount
| public integer getCount |
() |
| Output |
|
integer
| the number of items in the request |
| Exception |
|
getEnableCookieValidation
| public boolean getEnableCookieValidation |
() |
| Output |
|
boolean
| whether cookies should be validated. Defaults to false. |
| Exception |
|
getEnvironmentVariables
| public array getEnvironmentVariables |
() |
| Output |
|
array
| list of environment variables. |
| Exception |
|
getHttpProtocolVersion
| public string getHttpProtocolVersion |
() |
| Output |
|
string
| the requested http procolol. Blank string if not defined. |
| Exception |
|
getID
| Output |
|
string
| id of this module |
| Exception |
|
getIsSecureConnection
| public boolean getIsSecureConnection |
() |
| Output |
|
boolean
| if the request is sent via secure channel (https) |
| Exception |
|
getIterator
| public Iterator getIterator |
() |
Returns an iterator for traversing the items in the list.
This method is required by the interface IteratorAggregate.
| Output |
|
Iterator
| an iterator for traversing the items in the list. |
| Exception |
|
getKeys
| Output |
|
array
| the key list |
| Exception |
|
getPathInfo
| public string getPathInfo |
() |
| Output |
|
string
| part of the request URL after script name and before question mark. |
| Exception |
|
getQueryString
| public string getQueryString |
() |
| Output |
|
string
| part of that request URL after the question mark |
| Exception |
|
getRequestResolved
| public boolean getRequestResolved |
() |
| Output |
|
boolean
| true if request is already resolved, false otherwise. |
| Exception |
|
getRequestType
| public string getRequestType |
() |
| Output |
|
string
| request type, can be GET, POST, HEAD, or PUT |
| Exception |
|
getRequestUri
| public string getRequestUri |
() |
| Output |
|
string
| part of that request URL after the host info (including pathinfo and query string) |
| Exception |
|
getServerName
| public string getServerName |
() |
| Output |
|
string
| server name |
| Exception |
|
getServerPort
| public integer getServerPort |
() |
| Output |
|
integer
| server port number |
| Exception |
|
getServerVariables
| public array getServerVariables |
() |
| Output |
|
array
| list of server variables. |
| Exception |
|
getServiceID
| public string getServiceID |
() |
| Output |
|
string
| requested service ID |
| Exception |
|
getServiceParameter
| public string getServiceParameter |
() |
| Output |
|
string
| requested service parameter |
| Exception |
|
getUploadedFiles
| public array getUploadedFiles |
() |
| Output |
|
array
| list of uploaded files. |
| Exception |
|
getUrl
| Output |
|
TUri
| the request URL |
| Exception |
|
getUrlFormat
|
getUrlManager
| public string getUrlManager |
() |
| Output |
|
string
| the ID of the URL manager module |
| Exception |
|
getUrlManagerModule
|
getUrlParamSeparator
| public string getUrlParamSeparator |
() |
| Output |
|
string
| separator used to separate GET variable name and value when URL format is Path. Defaults to comma ','. |
| Exception |
|
getUrlReferrer
| public string getUrlReferrer |
() |
| Output |
|
string
| URL referrer, null if not present |
| Exception |
|
getUserAgent
| public string getUserAgent |
() |
| Output |
|
string
| user agent |
| Exception |
|
getUserHost
| public string getUserHost |
() |
| Output |
|
string
| user host name, null if cannot be determined |
| Exception |
|
getUserHostAddress
| public string getUserHostAddress |
() |
| Output |
|
string
| user IP address |
| Exception |
|
getUserLanguages
| public array getUserLanguages |
() |
Returns a list of user preferred languages.
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.
| Output |
|
array
| list of user preferred languages. |
| Exception |
|
init
Initializes the module.
This method is required by IModule and is invoked by application.
| Input |
| TXmlElement | $config | module configuration |
| Output |
| Exception |
|
itemAt
| public mixed itemAt |
(mixed $key ) |
Returns the item with the specified key.
This method is exactly the same as offsetGet.
| Input |
| mixed | $key | the key |
| Output |
|
mixed
| the element at the offset, null if no element is found at the offset |
| Exception |
|
offsetExists
| public boolean offsetExists |
(mixed $offset ) |
Returns whether there is an element at the specified offset.
This method is required by the interface ArrayAccess.
| Input |
| mixed | $offset | the offset to check on |
| Output |
| Exception |
|
offsetGet
| public mixed offsetGet |
(integer $offset ) |
Returns the element at the specified offset.
This method is required by the interface ArrayAccess.
| Input |
| integer | $offset | the offset to retrieve element. |
| Output |
|
mixed
| the element at the offset, null if no element is found at the offset |
| Exception |
|
offsetSet
| public void offsetSet |
(integer $offset , mixed $item ) |
Sets the element at the specified offset.
This method is required by the interface ArrayAccess.
| Input |
| integer | $offset | the offset to set element |
| mixed | $item | the element value |
| Output |
| Exception |
|
offsetUnset
| public void offsetUnset |
(mixed $offset ) |
Unsets the element at the specified offset.
This method is required by the interface ArrayAccess.
| Input |
| mixed | $offset | the offset to unset element |
| Output |
| Exception |
|
parseUrl
| protected array parseUrl |
() |
Parses the request URL and returns an array of input parameters (excluding GET variables).
You may override this method to support customized URL format.
| Output |
|
array
| list of input parameters, indexed by parameter names |
| Exception |
|
remove
| public mixed remove |
(mixed $key ) |
Removes an item from the request by its key.
| Input |
| mixed | $key | the key of the item to be removed |
| Output |
|
mixed
| the removed value, null if no such key exists. |
| Exception |
| throws | TInvalidOperationException if the item cannot be removed |
|
resolveRequest
| public string resolveRequest |
(array $serviceIDs ) |
Resolves the requested service.
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.
| Input |
| array | $serviceIDs | list of valid service IDs |
| Output |
|
string
| the currently requested service ID, null if no service ID is found |
| Exception |
|
setEnableCookieValidation
| public void setEnableCookieValidation |
(boolean $value ) |
| Input |
| boolean | $value | whether cookies should be validated. |
| Output |
| Exception |
|
setID
| public void setID |
(string $value ) |
| Input |
| string | $value | id of this module |
| Output |
| Exception |
|
setServiceID
| public void setServiceID |
(string $value ) |
Sets the requested service ID.
| Input |
| string | $value | requested service ID |
| Output |
| Exception |
|
setServiceParameter
| public void setServiceParameter |
(string $value ) |
Sets the requested service parameter.
| Input |
| string | $value | requested service parameter |
| Output |
| Exception |
|
setUrlFormat
Sets the format of URLs constructed and interpretted by the request module.
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 constructUrl and how GET variables are parsed.
|
setUrlManager
| public void setUrlManager |
(string $value ) |
Sets the URL manager module.
By default, 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.
| Input |
| string | $value | the ID of the URL manager module |
| Output |
| Exception |
|
setUrlParamSeparator
| public void setUrlParamSeparator |
(string $value ) |
| Input |
| string | $value | separator used to separate GET variable name and value when URL format is Path. |
| Output |
| Exception |
| throws | TInvalidDataValueException if the separator is not a single character |
|
stripSlashes
| public mixed stripSlashes |
(mixed &$data ) |
Strips slashes from input data.
This method is applied when magic quotes is enabled.
| Input |
| mixed | &$data | input data to be processed |
| Output |
|
mixed
| processed data |
| Exception |
|
toArray
| Output |
|
array
| the list of items in array |
| Exception |
|