Class yii\web\UrlRule
Inheritance | yii\web\UrlRule » yii\base\BaseObject |
---|---|
Implements | yii\base\Configurable, yii\web\UrlRuleInterface |
Available since version | 2.0 |
Source Code | https://github.com/yiisoft/yii2/blob/master/framework/web/UrlRule.php |
UrlRule represents a rule used by yii\web\UrlManager for parsing and generating URLs.
To define your own URL parsing and creation logic you can extend from this class and add it to yii\web\UrlManager::$rules like this:
'rules' => [
['class' => 'MyUrlRule', 'pattern' => '...', 'route' => 'site/index', ...],
// ...
]
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$createUrlStatus | null|integer | Status of the URL creation after the last createUrl() call.
null if rule does not provide info about create status. |
yii\web\UrlRule |
$defaults | array | The default GET parameters (name => value) that this rule provides. | yii\web\UrlRule |
$encodeParams | boolean | A value indicating if parameters should be url encoded. | yii\web\UrlRule |
$host | string|null | The pattern used to parse and create the host info part of a URL (e.g. `http://example. | yii\web\UrlRule |
$mode | integer|null | A value indicating if this rule should be used for both request parsing and URL creation, parsing only, or creation only. | yii\web\UrlRule |
$name | string|null | The name of this rule. | yii\web\UrlRule |
$normalizer | yii\web\UrlNormalizer|array|false|null | The configuration for yii\web\UrlNormalizer used by this rule. | yii\web\UrlRule |
$pattern | string | The pattern used to parse and create the path info part of a URL. | yii\web\UrlRule |
$route | string | The route to the controller action | yii\web\UrlRule |
$suffix | string|null | The URL suffix used for this rule. | yii\web\UrlRule |
$verb | string|array|null | The HTTP verb (e.g. GET, POST, DELETE) that this rule should match. | yii\web\UrlRule |
Protected Properties
Property | Type | Description | Defined By |
---|---|---|---|
$createStatus | integer|null | Status of the URL creation after the last createUrl() call. | yii\web\UrlRule |
$placeholders | array | List of placeholders for matching parameters names. | yii\web\UrlRule |
Public Methods
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | yii\base\BaseObject |
__construct() | Constructor. | yii\base\BaseObject |
__get() | Returns the value of an object property. | yii\base\BaseObject |
__isset() | Checks if a property is set, i.e. defined and not null. | yii\base\BaseObject |
__set() | Sets value of an object property. | yii\base\BaseObject |
__toString() | yii\web\UrlRule | |
__unset() | Sets an object property to null. | yii\base\BaseObject |
canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\BaseObject |
canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\BaseObject |
className() | Returns the fully qualified name of this class. | yii\base\BaseObject |
createUrl() | Creates a URL according to the given route and parameters. | yii\web\UrlRule |
getCreateUrlStatus() | Returns status of the URL creation after the last createUrl() call. | yii\web\UrlRule |
hasMethod() | Returns a value indicating whether a method is defined. | yii\base\BaseObject |
hasProperty() | Returns a value indicating whether a property is defined. | yii\base\BaseObject |
init() | Initializes this rule. | yii\web\UrlRule |
parseRequest() | Parses the given request and returns the corresponding route and parameters. | yii\web\UrlRule |
Protected Methods
Method | Description | Defined By |
---|---|---|
getNormalizer() | yii\web\UrlRule | |
getParamRules() | Returns list of regex for matching parameter. | yii\web\UrlRule |
hasNormalizer() | yii\web\UrlRule | |
substitutePlaceholderNames() | Iterates over $placeholders and checks whether each placeholder exists as a key in $matches array. | yii\web\UrlRule |
Constants
Constant | Value | Description | Defined By |
---|---|---|---|
CREATE_STATUS_PARAMS_MISMATCH | 4 | Represents the unsuccessful URL generation by last createUrl() call, because of mismatched or missing parameters. | yii\web\UrlRule |
CREATE_STATUS_PARSING_ONLY | 1 | Represents the unsuccessful URL generation by last createUrl() call, because rule does not support creating URLs. | yii\web\UrlRule |
CREATE_STATUS_ROUTE_MISMATCH | 2 | Represents the unsuccessful URL generation by last createUrl() call, because of mismatched route. | yii\web\UrlRule |
CREATE_STATUS_SUCCESS | 0 | Represents the successful URL generation by last createUrl() call. | yii\web\UrlRule |
CREATION_ONLY | 2 | Set $mode with this value to mark that this rule is for URL creation only. | yii\web\UrlRule |
PARSING_ONLY | 1 | Set $mode with this value to mark that this rule is for URL parsing only. | yii\web\UrlRule |
Property Details
Status of the URL creation after the last createUrl() call.
Status of the URL creation after the last createUrl() call.
null
if rule does not provide info about create status.
The default GET parameters (name => value) that this rule provides. When this rule is used to parse the incoming request, the values declared in this property will be injected into $_GET.
A value indicating if parameters should be url encoded.
The pattern used to parse and create the host info part of a URL (e.g. http://example.com
).
See also $pattern.
A value indicating if this rule should be used for both request parsing and URL creation, parsing only, or creation only. If not set or 0, it means the rule is both request parsing and URL creation. If it is PARSING_ONLY, the rule is for request parsing only. If it is CREATION_ONLY, the rule is for URL creation only.
The name of this rule. If not set, it will use $pattern as the name.
The configuration for yii\web\UrlNormalizer used by this rule.
If null
, yii\web\UrlManager::$normalizer will be used, if false
, normalization will be skipped
for this rule.
List of placeholders for matching parameters names. Used in parseRequest(), createUrl(). On the rule initialization, the $pattern parameters names will be replaced with placeholders. This array contains relations between the original parameters names and their placeholders. The array keys are the placeholders and the values are the original names.
See also:
The route to the controller action
The URL suffix used for this rule. For example, ".html" can be used so that the URL looks like pointing to a static HTML page. If not set, the value of yii\web\UrlManager::$suffix will be used.
The HTTP verb (e.g. GET, POST, DELETE) that this rule should match. Use array to represent multiple verbs that this rule may match. If this property is not set, the rule can match any verb. Note that this property is only used when parsing a request. It is ignored for URL creation.
Method Details
public string __toString ( ) |
Creates a URL according to the given route and parameters.
public string|boolean createUrl ( $manager, $route, $params ) | ||
$manager | yii\web\UrlManager | The URL manager |
$route | string | The route. It should not have slashes at the beginning or the end. |
$params | array | The parameters |
return | string|boolean | The created URL, or |
---|
Returns status of the URL creation after the last createUrl() call.
See also $createStatus.
public integer|null getCreateUrlStatus ( ) | ||
return | integer|null | Status of the URL creation after the last createUrl() call. |
---|
protected yii\web\UrlNormalizer|null getNormalizer ( $manager ) | ||
$manager | yii\web\UrlManager | The URL manager |
Returns list of regex for matching parameter.
protected array getParamRules ( ) | ||
return | array | Parameter keys and regexp rules. |
---|
protected boolean hasNormalizer ( $manager ) | ||
$manager | yii\web\UrlManager | The URL manager |
Initializes this rule.
public void init ( ) |
Parses the given request and returns the corresponding route and parameters.
public array|boolean parseRequest ( $manager, $request ) | ||
$manager | yii\web\UrlManager | The URL manager |
$request | yii\web\Request | The request component |
return | array|boolean | The parsing result. The route and the parameters are returned as an array.
If |
---|
Iterates over $placeholders and checks whether each placeholder exists as a key in $matches array.
When found - replaces this placeholder key with a appropriate name of matching parameter. Used in parseRequest(), createUrl().
See also $placeholders.
protected array substitutePlaceholderNames ( array $matches ) | ||
$matches | array | Result of |
return | array | Input array with replaced placeholder keys |
---|