Class yii\web\UrlRule

继承yii\web\UrlRule » yii\base\BaseObject
实现yii\base\Configurable, yii\web\UrlRuleInterface
可用自版本2.0
源代码 https://github.com/yiisoft/yii2/blob/master/framework/web/UrlRule.php

UrlRule 表示 yii\web\UrlManager 用于解析和生成 URL 的规则.

要定义自己的 URL 解析和创建逻辑, 可以从此类扩展, 并将其添加到 yii\web\UrlManager::$rules, 如下所示:

'rules' => [
    ['class' => 'MyUrlRule', 'pattern' => '...', 'route' => 'site/index', ...],
    // ...
]

公共属性

隐藏继承的属性

属性类型描述定义在
$createUrlStatus null|integer 最后一次 createUrl() 调用之后创建 URL 的状态. 如果规则不提供有关创建状态的信息, 则为null. 该属性是只读的. yii\web\UrlRule
$defaults array 此规则提供的默认 GET 参数(name => value). yii\web\UrlRule
$encodeParams boolean 一个指示参数是否应进行 url 编码的值. yii\web\UrlRule
$host string 用于解析和创建 URL 的主机信息部分的模式(eg. yii\web\UrlRule
$mode integer 一个值, 指示是否应将该规则用于请求解析和创建 URL, 仅解析还是仅创建. yii\web\UrlRule
$name string 此规则的名称. yii\web\UrlRule
$normalizer yii\web\UrlNormalizer|array|false|null 此规则使用的 yii\web\UrlNormalizer 的配置. yii\web\UrlRule
$pattern string 用于解析和创建 URL 的路径信息部分的模式. yii\web\UrlRule
$route string 控制器动作的路由. yii\web\UrlRule
$suffix string 用于此规则的 URL 后缀. yii\web\UrlRule
$verb string|array 该规则应匹配的 HTTP 动词(eg. yii\web\UrlRule

受保护的属性

隐藏继承的属性

属性类型描述定义在
$createStatus integer|null 在最后一次 createUrl() 调用之后创建 URL 的状态. yii\web\UrlRule
$placeholders array 匹配参数名称的占位符列表. yii\web\UrlRule

公共方法

隐藏继承的方法

方法描述定义在
__call() 调用不是类方法的已命名方法. yii\base\BaseObject
__construct() 构造函数. yii\base\BaseObject
__get() 返回对象属性的值. yii\base\BaseObject
__isset() 检查属性是否已设置, 即已定义且不为null. yii\base\BaseObject
__set() 设置对象属性的值. yii\base\BaseObject
__toString() yii\web\UrlRule
__unset() 将对象属性设置为null. yii\base\BaseObject
canGetProperty() 返回一个值, 指示属性是否可读. yii\base\BaseObject
canSetProperty() 返回一个值, 指示属性是否可写. yii\base\BaseObject
className() 返回此类的完全限定名称. yii\base\BaseObject
createUrl() 根据给定的路由和参数创建一个 URL. yii\web\UrlRule
getCreateUrlStatus() 返回最后一次 createUrl() 调用后 URL 创建的状态. yii\web\UrlRule
hasMethod() 返回一个值, 指示方法是否已定义. yii\base\BaseObject
hasProperty() 返回一个值, 指示属性是否已定义. yii\base\BaseObject
init() 初始化此规则. yii\web\UrlRule
parseRequest() 解析给定的请求并返回相应的路由和参数. yii\web\UrlRule

受保护的方法

隐藏继承的方法

方法描述定义在
getNormalizer() yii\web\UrlRule
getParamRules() 返回用于匹配参数的正则表达式列表. yii\web\UrlRule
hasNormalizer() yii\web\UrlRule
substitutePlaceholderNames() 迭代 占位符 并检查每个占位符是否作为 $matches 数组中的键存在. yii\web\UrlRule

常量

隐藏继承的常量

常量描述定义在
CREATE_STATUS_PARAMS_MISMATCH 4 表示由于参数不匹配或缺失而导致上次 createUrl() 调用未能成功生产 URL. yii\web\UrlRule
CREATE_STATUS_PARSING_ONLY 1 表示上次 createUrl() 调用未成功生成 URL, 因为规则不支持创建 URL. yii\web\UrlRule
CREATE_STATUS_ROUTE_MISMATCH 2 表示由于路由不匹配, 最后一次 createUrl() 调用生成的 URL 不成功. Represents the unsuccessful URL generation by last createUrl() call, because of mismatched route. yii\web\UrlRule
CREATE_STATUS_SUCCESS 0 表示通过最后一次 createUrl() 调用成功生成 URL. yii\web\UrlRule
CREATION_ONLY 2 $mode 设置为此值, 以标记此规则仅用于 URL 创建. yii\web\UrlRule
PARSING_ONLY 1 $mode 设置为此值, 以标记此规则仅用于 URL 解析. yii\web\UrlRule

属性详情

$createStatus protected 属性 (可用自版本: 2.0.12)

在最后一次 createUrl() 调用之后创建 URL 的状态.

protected integer|null $createStatus null
$createUrlStatus public 属性

最后一次 createUrl() 调用之后创建 URL 的状态. 如果规则不提供有关创建状态的信息, 则为null. 该属性是只读的.

$defaults public 属性

此规则提供的默认 GET 参数(name => value).

当使用此规则解析传入的请求时, 在此属性中声明的值将被注入$_GET.

public array $defaults = []
$encodeParams public 属性

一个指示参数是否应进行 url 编码的值.

public boolean $encodeParams true
$host public 属性

用于解析和创建 URL 的主机信息部分的模式(eg. http://example.com).

参见 $pattern.

public string $host null
$mode public 属性

一个值, 指示是否应将该规则用于请求解析和创建 URL, 仅解析还是仅创建.

如果未设置或0, 则表示该规则既是请求解析又是创建 URL.

如果它是 PARSING_ONLY, 则该规则仅用于请求解析.

如果它是 CREATION_ONLY, 则该规则仅用于创建 URL.

public integer $mode null
$name public 属性

此规则的名称. 如果未设置, 则将使用 $pattern 作为名称.

public string $name null
$normalizer public 属性 (可用自版本: 2.0.10)

此规则使用的 yii\web\UrlNormalizer 的配置.

如果为null, 将使用 yii\web\UrlManager::$normalizer; 如果为false, 则将跳过此规则的规范化.

$pattern public 属性

用于解析和创建 URL 的路径信息部分的模式.

参见:

public string $pattern null
$placeholders protected 属性 (可用自版本: 2.0.7)

匹配参数名称的占位符列表. 在 parseRequest(), createUrl() 中使用.

在规则初始化时, $pattern 参数名称将替换为占位符.

该数组包含原始参数名称及其占位符之间的关系. 数组键是占位符, 值是原始名称.

参见:

protected array $placeholders = []
$route public 属性

控制器动作的路由.

public string $route null
$suffix public 属性

用于此规则的 URL 后缀.

例如, 可以使用.html , 以便 URL 看起来像指向一个静态的 HTML 页面.

如果未设置, 将使用 yii\web\UrlManager::$suffix 的值.

public string $suffix null
$verb public 属性

该规则应匹配的 HTTP 动词(eg. GET, POST, DELETE).

使用数组来表示此规则可能匹配的多个动词.

如果该属性未设置, 则该规则可以匹配任何动词.

Note: 该属性仅在解析请求时使用. 在创建 URL 时忽略它.

public string|array $verb null

方法详情

__toString() public 方法 (可用自版本: 2.0.11)

public string __toString ( )
createUrl() public 方法

根据给定的路由和参数创建一个 URL.

public string|boolean createUrl ( $manager, $route, $params )
$manager yii\web\UrlManager

URL 管理器.

$route string

路由. 它在开头或结尾不应该有斜杠.

$params array

参数列表.

return string|boolean

创建的 URL; 如果此规则不能用来创建 URL, 则返回false.

getCreateUrlStatus() public 方法 (可用自版本: 2.0.12)

返回最后一次 createUrl() 调用后 URL 创建的状态.

参见 $createStatus.

public null|integer getCreateUrlStatus ( )
return null|integer

最后一次 createUrl() 调用之后创建 URL 的状态. 如果规则不提供有关创建状态的信息, 则为null.

getNormalizer() protected 方法 (可用自版本: 2.0.10)

protected yii\web\UrlNormalizer|null getNormalizer ( $manager )
$manager yii\web\UrlManager

URL 管理器.

getParamRules() protected 方法 (可用自版本: 2.0.6)

返回用于匹配参数的正则表达式列表.

protected array getParamRules ( )
return array

参数键和正则表达式规则.

hasNormalizer() protected 方法 (可用自版本: 2.0.10)

protected boolean hasNormalizer ( $manager )
$manager yii\web\UrlManager

URL 管理器.

init() public 方法

初始化此规则.

public void init ( )
parseRequest() public 方法

解析给定的请求并返回相应的路由和参数.

public array|boolean parseRequest ( $manager, $request )
$manager yii\web\UrlManager

URL 管理器.

$request yii\web\Request

请求组件.

return array|boolean

解析结果. 路由和参数以数组的形式返回. 如果为false, 则表示此规则不能用于解析此路径信息.

substitutePlaceholderNames() protected 方法 (可用自版本: 2.0.7)

迭代 占位符 并检查每个占位符是否作为 $matches 数组中的键存在.

找到时 - 用适当的匹配参数名称替换此占位符键. 在 parseRequest(), createUrl() 中使用.

参见 $placeholders.

protected array substitutePlaceholderNames ( array $matches )
$matches array

preg_match()调用的结果.

return array

具有替换的占位符键输入数组.