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
Datei anzeigen Open project: pradosoft/prado Class Usage Examples

Public Methods

Method 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

Protected Methods

Method 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 method

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

cacheUrlManager() protected method

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

clear() public method

Removes all items in the request.
public clear ( )

constructUrl() public method

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
return string URL

contains() public method

public contains ( $key ) : boolean
return boolean whether the request contains an item with the specified key

count() public method

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

getAbsoluteApplicationUrl() public method

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

getAcceptTypes() public method

public getAcceptTypes ( ) : string
return string user browser accept types

getApplicationFilePath() public method

public getApplicationFilePath ( ) : string
return string application entry script file path (processed w/ realpath())

getApplicationUrl() public method

public getApplicationUrl ( ) : string
return string entry script URL (w/o host part)

getBaseUrl() public method

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

getBrowser() public method

See also: get_browser
public getBrowser ( ) : array
return array user browser capabilities

getCacheKey() protected method

protected getCacheKey ( )

getCgiFix() public method

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

getContentType() public method

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

getCookies() public method

public getCookies ( ) : THttpCookieCollection
return THttpCookieCollection list of cookies to be sent

getCount() public method

public getCount ( ) : integer
return integer the number of items in the request

getEnableCache() public method

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

getEnableCookieValidation() public method

public getEnableCookieValidation ( ) : boolean
return boolean whether cookies should be validated. Defaults to false.

getEnvironmentVariables() public method

public getEnvironmentVariables ( ) : array
return array list of environment variables.

getHeaders() public method

public getHeaders ( $case = null ) : array
return array

getHttpProtocolVersion() public method

public getHttpProtocolVersion ( ) : string
return string the requested http procolol. Blank string if not defined.

getID() public method

public getID ( ) : string
return string id of this module

getIsSecureConnection() public method

public getIsSecureConnection ( ) : boolean
return boolean if the request is sent via secure channel (https)

getIterator() public method

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

getKeys() public method

public getKeys ( ) : array
return array the key list

getPathInfo() public method

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

getQueryString() public method

public getQueryString ( ) : string
return string part of that request URL after the question mark

getRequestResolved() public method

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

getRequestType() public method

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

getRequestUri() public method

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

getServerName() public method

public getServerName ( ) : string
return string server name

getServerPort() public method

public getServerPort ( ) : integer
return integer server port number

getServerVariables() public method

public getServerVariables ( ) : array
return array list of server variables.

getServiceID() public method

public getServiceID ( ) : string
return string requested service ID

getServiceParameter() public method

public getServiceParameter ( ) : string
return string requested service parameter

getUploadedFiles() public method

public getUploadedFiles ( ) : array
return array list of uploaded files.

getUrl() public method

public getUrl ( ) : TUri
return TUri the request URL

getUrlFormat() public method

public getUrlFormat ( ) : THttpRequestUrlFormat
return THttpRequestUrlFormat the format of URLs. Defaults to THttpRequestUrlFormat::Get.

getUrlManager() public method

public getUrlManager ( ) : string
return string the ID of the URL manager module

getUrlManagerModule() public method

public getUrlManagerModule ( ) : TUrlManager
return TUrlManager the URL manager module

getUrlParamSeparator() public method

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

getUrlReferrer() public method

public getUrlReferrer ( ) : string
return string URL referrer, null if not present

getUserAgent() public method

public getUserAgent ( ) : string
return string user agent

getUserHost() public method

public getUserHost ( ) : string
return string user host name, null if cannot be determined

getUserHostAddress() public method

public getUserHostAddress ( ) : string
return string user IP address

getUserLanguages() public method

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
return array list of user preferred languages.

init() public method

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

itemAt() public method

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

loadCachedUrlManager() protected method

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

offsetExists() public method

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

offsetGet() public method

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

offsetSet() public method

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

offsetUnset() public method

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

parseUrl() protected method

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

remove() public method

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

resolveRequest() public method

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
return string the currently requested service ID, null if no service ID is found

setCgiFix() public method

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 method

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 method

public setEnableCookieValidation ( $value )

setID() public method

public setID ( $value )

setServiceID() public method

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

setServiceParameter() public method

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

setUrlFormat() public method

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 method

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 method

public setUrlParamSeparator ( $value )

stripSlashes() public method

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

toArray() public method

public toArray ( ) : array
return array the list of items in array