Class yii\web\UrlNormalizer

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

UrlNormalizer 规范化 yii\web\UrlManageryii\web\UrlRule 的 URL.

公共属性

隐藏继承的属性

属性类型描述定义在
$action integer|callable|null 在路由规范化期间要执行的动作. yii\web\UrlNormalizer
$collapseSlashes boolean 是否应该折叠斜杠, 例如site///index将被转换为site/index. yii\web\UrlNormalizer
$normalizeTrailingSlash boolean 是否应根据规则的后缀设置对斜杠进行标准化. yii\web\UrlNormalizer

公共方法

隐藏继承的方法

方法描述定义在
__call() 调用不是类方法的已命名方法. yii\base\BaseObject
__construct() 构造函数. yii\base\BaseObject
__get() 返回对象属性的值. yii\base\BaseObject
__isset() 检查属性是否已设置, 即已定义且不为null. yii\base\BaseObject
__set() 设置对象属性的值. yii\base\BaseObject
__unset() 将对象属性设置为null. yii\base\BaseObject
canGetProperty() 返回一个值, 指示属性是否可读. yii\base\BaseObject
canSetProperty() 返回一个值, 指示属性是否可写. yii\base\BaseObject
className() 返回此类的完全限定名称. yii\base\BaseObject
hasMethod() 返回一个值, 指示方法是否已定义. yii\base\BaseObject
hasProperty() 返回一个值, 指示属性是否已定义. yii\base\BaseObject
init() 初始化对象. yii\base\BaseObject
normalizePathInfo() 规范化指定的路径信息. yii\web\UrlNormalizer
normalizeRoute() 对指定的 $route 执行规范化操作. yii\web\UrlNormalizer

受保护的方法

隐藏继承的方法

方法描述定义在
collapseSlashes() 折叠 $pathInfo 中的连续斜杠, 例如把site///index转换成site/index. yii\web\UrlNormalizer
normalizeTrailingSlash() 根据 $suffix 是否有尾部斜杠, 决定在 $pathInfo 中添加或删除尾部斜线. yii\web\UrlNormalizer

常量

隐藏继承的常量

常量描述定义在
ACTION_NOT_FOUND 404 表示在路由规范化过程中显示404错误页面. yii\web\UrlNormalizer
ACTION_REDIRECT_PERMANENT 301 表示路由规范化期间的永久重定向. yii\web\UrlNormalizer
ACTION_REDIRECT_TEMPORARY 302 表示路由规范化期间的临时重定向. yii\web\UrlNormalizer

属性详情

$action public 属性

在路由规范化期间要执行的动作.

可用的选项有:

  • null - 不会执行任何特别的动作.
  • 301 - 应使用永久重定向将请求重定向到规范化的 URL.
  • 302 - 应使用临时重定向将请求重定向到规范化的 URL.
  • 404 - yii\web\NotFoundHttpException 将被抛出.
  • callable - 自定义用户回调, 例如:

    function ($route, $normalizer) {
        // 使用自定义动作进行重定向
        $route[1]['oldRoute'] = $route[0];
        $route[0] = 'site/redirect';
        return $route;
    }
    
public integer|callable|null $action self::ACTION_REDIRECT_PERMANENT
$collapseSlashes public 属性

是否应该折叠斜杠, 例如site///index将被转换为site/index.

public boolean $collapseSlashes true
$normalizeTrailingSlash public 属性

是否应根据规则的后缀设置对斜杠进行标准化.

方法详情

collapseSlashes() protected 方法

折叠 $pathInfo 中的连续斜杠, 例如把site///index转换成site/index.

protected string collapseSlashes ( $pathInfo )
$pathInfo string

原始路径信息.

return string

规范化的路径信息.

normalizePathInfo() public 方法

规范化指定的路径信息.

public string normalizePathInfo ( $pathInfo, $suffix, &$normalized false )
$pathInfo string

要规范化的路径信息.

$suffix string

当前规则的后缀.

$normalized boolean

如果指定, 如果 $pathInfo 在规范化过程中发生更改, 则此变量将设置为true.

return string

规范化的路径信息.

normalizeRoute() public 方法

对指定的 $route 执行规范化操作.

public array normalizeRoute ( $route )
$route array

要规范化的路由.

return array

规范化的路由.

throws yii\base\InvalidConfigException

如果使用了无效的规范化操作.

throws yii\web\UrlNormalizerRedirectException

如果规范化需要重定向.

throws yii\web\NotFoundHttpException

如果规范化建议动作匹配路由不存在.

normalizeTrailingSlash() protected 方法

根据 $suffix 是否有尾部斜杠, 决定在 $pathInfo 中添加或删除尾部斜线.

protected string normalizeTrailingSlash ( $pathInfo, $suffix )
$pathInfo string

原始路径信息.

$suffix string
return string

规范化的路径信息.