PHP Класс Prado\Web\TUrlMappingPattern
TUrlMappingPattern represents a pattern used to parse and construct URLs.
If the currently requested URL matches the pattern, it will alter
the THttpRequest parameters. If a constructUrl() call matches the pattern
parameters, the pattern will generate a valid URL. In both case, only the PATH_INFO
part of a URL is parsed/constructed using the pattern.
To specify the pattern, set the {@link setPattern Pattern} property.
{@link setPattern Pattern} takes a string expression with
parameter names enclosed between a left brace '{' and a right brace '}'.
The patterns for each parameter can be set using {@link getParameters Parameters}
attribute collection. For example
In the above example, the pattern contains 3 parameters named "year",
"month" and "day". The pattern for these parameters are, respectively,
"\d{4}" (4 digits), "\d{2}" (2 digits) and "\d+" (1 or more digits).
Essentially, the
Parameters attribute name and values are used
as substrings in replacing the placeholders in the
Pattern string
to form a complete regular expression string.
For more complicated patterns, one may specify the pattern using a regular expression
by {@link setRegularExpression RegularExpression}. For example, the above pattern
is equivalent to the following regular expression-based pattern:
#^articles/(?P\d{4})/(?P\d{2})\/(?P\d+)$#u
The above regular expression used the "named group" feature available in PHP.
If you intended to use the
RegularExpression property or
regular expressions in CDATA sections, notice that you need to escape the slash,
if you are using the slash as regular expressions delimiter.
Thus, only an url that matches the pattern will be valid. For example,
a URL
http://example.com/index.php/articles/2006/07/21 will match the above pattern,
while
http://example.com/index.php/articles/2006/07/hello will not
since the "day" parameter pattern is not satisfied.
The parameter values are available through the
THttpRequest instance (e.g.
$this->Request['year']).
The {@link setServiceParameter ServiceParameter} and {@link setServiceID ServiceID}
(the default ID is 'page') set the service parameter and service id respectively.
Since 3.1.4 you can also use simplyfied wildcard patterns to match multiple
ServiceParameters with a single rule. The pattern must contain the placeholder
{*} for the ServiceParameter. For example
This rule will match an URL like http://example.com/index.php/admin/edituser
and resolve it to the page Application.pages.admin.edituser. The wildcard matching
is non-recursive. That means you have to add a rule for every subdirectory you
want to access pages in:
It is still possible to define an explicit rule for a page in the wildcard path.
This rule has to preceed the wildcard rule.
You can also use parameters with wildcard patterns. The parameters are then
available with every matching page:
To enable automatic parameter encoding in a path format from wildcard patterns you can set
{@setUrlFormat UrlFormat} to 'Path':
This will create and parse URLs of the form
.../index.php/admin/listuser/param1/value1/param2/value2.
Use {@setUrlParamSeparator} to define another separator character between parameter
name and value. Parameter/value pairs are always separated by a '/'.
.../index.php/admin/listuser/param1-value1/param2-value2.
Since 3.2.2 you can also add a list of "constants" parameters that can be used just
like the original "parameters" parameters, except that the supplied value will be treated
as a simple string constant instead of a regular expression. For example
These rules, when matched by the actual request, will make the application see a "lisstype" parameter present
(even through not supplied in the request) and equal to "detailed" or "summarized", depending on the friendly url matched.
The constants is practically a table-based validation and translation of specified, fixed-set parameter values.
Показать файл
Открыть проект
Защищенные свойства (Protected)
Свойство |
Тип |
Описание |
|
$_constants |
|
of constant parameters. |
|
Открытые методы
Защищенные методы
Описание методов
__construct()
публичный Метод
public __construct ( TUrlManager $manager ) |
$manager |
TUrlManager |
|
applySecureConnectionPrefix()
защищенный Метод
Apply behavior of {@link SecureConnection} property by conditionaly prefixing
URL with {@link THttpRequest::getBaseUrl()}
constructUrl()
публичный Метод
Constructs a URL using this pattern.
getCaseSensitive()
публичный Метод
public getCaseSensitive ( ) : boolean |
Результат |
boolean |
whether the {@link getPattern Pattern} should be treated as case sensititve. Defaults to true. |
getConstants()
публичный Метод
public getConstants ( ) : TAttributeCollection |
Результат |
Prado\Collections\TAttributeCollection |
constanst parameter key value pairs. |
getEnableCustomUrl()
публичный Метод
Returns a value indicating whether to use this pattern to construct URL.
getIsWildCardPattern()
публичный Метод
getManager()
публичный Метод
public getManager ( ) : TUrlManager |
Результат |
TUrlManager |
the URL manager instance |
getParameterizedPattern()
защищенный Метод
Substitute the parameter key value pairs as named groupings
in the regular expression matching pattern.
getParameters()
публичный Метод
public getParameters ( ) : TAttributeCollection |
Результат |
Prado\Collections\TAttributeCollection |
parameter key value pairs. |
getPattern()
публичный Метод
getPatternMatches()
публичный Метод
Uses URL pattern (or full regular expression if available) to
match the given url path.
getRegularExpression()
публичный Метод
getSecureConnection()
публичный Метод
public getSecureConnection ( ) : TUrlMappingPatternSecureConnection |
Результат |
TUrlMappingPatternSecureConnection |
the SecureConnection behavior. Defaults to {@link TUrlMappingPatternSecureConnection::Automatic Automatic} |
getServiceID()
публичный Метод
getServiceParameter()
публичный Метод
getUrlParamSeparator()
публичный Метод
public getUrlParamSeparator ( ) : string |
Результат |
string |
separator used to separate GET variable name and value when URL format is Path. Defaults to slash '/'. |
setCaseSensitive()
публичный Метод
setEnableCustomUrl()
публичный Метод
Sets a value indicating whether to enable custom constructUrl using this pattern
setParameters()
публичный Метод
setPattern()
публичный Метод
setRegularExpression()
публичный Метод
setSecureConnection()
публичный Метод
setServiceID()
публичный Метод
setServiceParameter()
публичный Метод
setUrlParamSeparator()
публичный Метод
supportCustomUrl()
публичный Метод
public supportCustomUrl ( $getItems ) : boolean |
Результат |
boolean |
whether this pattern IS the one for constructing the URL with the specified GET items. |
Описание свойств
$_constants защищенное свойство