PHP Class Prado\Web\TUrlMapping
The TUrlMapping module allows PRADO to construct and recognize URLs
based on specific patterns.
TUrlMapping consists of a list of URL patterns which are used to match
against the currently requested URL. The first matching pattern will then
be used to decompose the URL into request parameters (accessible through
$this->Request['paramname']
).
The patterns can also be used to construct customized URLs. In this case,
the parameters in an applied pattern will be replaced with the corresponding
GET variable values.
Since it is derived from {@link TUrlManager}, it should be configured globally
in the application configuration like the following,
In the above, each
<url> element specifies a URL pattern represented
as a {@link TUrlMappingPattern} internally. You may create your own pattern classes
by extending {@link TUrlMappingPattern} and specifying the
<class> attribute
in the element.
The patterns can be also be specified in an external file using the {@link setConfigFile ConfigFile} property.
The URL mapping are evaluated in order, only the first mapping that matches
the URL will be used. Cascaded mapping can be achieved by placing the URL mappings
in particular order. For example, placing the most specific mappings first.
Only the PATH_INFO part of the URL is used to match the available patterns. The matching
is strict in the sense that the whole pattern must match the whole PATH_INFO of the URL.
From PRADO v3.1.1, TUrlMapping also provides support for constructing URLs according to
the specified pattern. You may enable this functionality by setting {@link setEnableCustomUrl EnableCustomUrl} to true.
When you call THttpRequest::constructUrl() (or via TPageService::constructUrl()),
TUrlMapping will examine the available URL mapping patterns using their {@link TUrlMappingPattern::getServiceParameter ServiceParameter}
and {@link TUrlMappingPattern::getPattern Pattern} properties. A pattern is applied if its
{@link TUrlMappingPattern::getServiceParameter ServiceParameter} matches the service parameter passed
to constructUrl() and every parameter in the {@link getPattern Pattern} is found
in the GET variables.
Exibir arquivo
Open project: pradosoft/prado
Protected Properties
Public Methods
Protected Methods
Method |
Description |
|
loadConfigFile ( ) |
Initialize the module from configuration file. |
|
loadUrlMappings ( $config ) |
Load and configure each url mapping pattern. |
|
Private Methods
Method Details
constructUrl()
public method
This method provides the actual implementation used by {@link THttpRequest::constructUrl}.
Override this method if you want to provide your own way of URL formatting.
If you do so, you may also need to override {@link parseUrl} so that the URL can be properly parsed.
The URL is constructed as the following format:
entryscript.php?serviceID=serviceParameter&get1=value1&...
If {@link THttpRequest::setUrlFormat THttpRequest.UrlFormat} is 'Path',
the following format is used instead:
entryscript.php/serviceID/serviceParameter/get1,value1/get2,value2...
If {@link THttpRequest::setUrlFormat THttpRequest.UrlFormat} is 'HiddenPath',
the following format is used instead:
serviceID/serviceParameter/get1,value1/get2,value2...
public constructUrl ( $serviceID, $serviceParam, $getItems, $encodeAmpersand, $encodeGetItems ) : string |
return |
string |
URL |
getConfigFile()
public method
getDefaultMappingClass()
public method
getEnableCustomUrl()
public method
If true, constructUrl() will make use of the URL mapping rules to
construct valid URLs.
getMatchingPattern()
public method
public getMatchingPattern ( ) : TUrlMappingPattern |
return |
TUrlMappingPattern |
the matched pattern, null if not found. |
getUrlPrefix()
public method
public getUrlPrefix ( ) : string |
return |
string |
the part that will be prefixed to the constructed URLs. Defaults to the requested script path (e.g. /path/to/index.php for a URL http://hostname/path/to/index.php) |
This method is required by the IModule interface.
loadConfigFile()
protected method
Initialize the module from configuration file.
loadUrlMappings()
protected method
Load and configure each url mapping pattern.
This method overrides the parent implementation.
The input parameters do not include GET and POST variables.
This method uses the request URL path to find the first matching pattern. If found
the matched pattern parameters are used to return as the input parameters.
setConfigFile()
public method
setDefaultMappingClass()
public method
When a URL matching pattern does not specify "class" attribute, it will default to the class
specified by this property. You may use either a class name or a namespace format of class (if the class needs to be included first.)
setEnableCustomUrl()
public method
If true, constructUrl() will make use of the URL mapping rules to
construct valid URLs.
setUrlPrefix()
public method
Property Details
$_constructRules protected_oe property
rules for constructing URLs
protected $_constructRules |
$_patterns protected_oe property