Class yii\base\Theme

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

Theme 表示应用程序主题.

yii\base\View 渲染视图文件时, 它将检查 active theme 以查看是否存在视图文件的主题版本. 如果存在, 则将渲染主题版本.

主题(Theme)是由视图文件组成的目录, 该文件旨在替换非主题的视图文件.

主题(Theme)使用 $pathMap 来实现视图文件替换:

  1. 它首先在 $pathMap 中查找给定视图文件路径的子字符串中的键;
  2. 如果存在这样的键, 则将使用相应的值替换视图文件路径中的相应部分;
  3. 然后, 它将检查更新的视图文件是否存在. 如果存在, 该文件将用于替换原始视图文件;
  4. 如果第2步或第3步失败, 则将使用原始视图文件.

例如, 如果 $pathMap['@app/views' => '@app/themes/basic'], 则视图文件@app/views/site/index.php的主题版本将会是@app/themes/basic/site/index.php.

可以将单个路径映射到多个路径. 例如:

'pathMap' => [
    '@app/views' => [
        '@app/themes/christmas',
        '@app/themes/basic',
    ],
]

在这种情况下, 主题版本可以是@app/themes/christmas/site/index.php@app/themes/basic/site/index.php. 如果两个文件都存在, 前者优先于后者.

要使用主题(Theme), 你应该像下面这样配置应用程序视图("view")组件的 theme 属性:

'view' => [
    'theme' => [
        'basePath' => '@app/themes/basic',
        'baseUrl' => '@web/themes/basic',
    ],
],

以上的配置指定了一个主题, 该主题位于 Web 文件夹的"themes/basic"目录下, 该目录包含应用程序的入口脚本. 如果你的主题旨在处理模块, 则可以如上所述配置 $pathMap 属性.

有关 Theme 的更多详细信息和使用信息, 请参阅 权威指南 - 显示数据 - 主题(Theming).

公共属性

隐藏继承的属性

属性类型描述定义在
$basePath string 该主题的根路径. 该主题的所有资源都位于此目录下. yii\base\Theme
$baseUrl string 该主题的基本 URL(不带结束斜杠). 该主题的所有资源被视为在该基础 URL 下. yii\base\Theme
$behaviors yii\base\Behavior[] 附加到此组件的行为列表. 该属性是只读的. yii\base\Component
$pathMap array 视图目录及其相应的主题版本之间的映射. yii\base\Theme

公共方法

隐藏继承的方法

方法描述定义在
__call() 调用不是类方法的指定的方法. yii\base\Component
__clone() 在通过克隆现有对象创建对象之后调用此方法. yii\base\Component
__construct() 构造函数. yii\base\BaseObject
__get() 返回组件属性的值. yii\base\Component
__isset() 检查属性是否已设置, 即已定义且不为null. yii\base\Component
__set() 设置组件属性的值. yii\base\Component
__unset() 将组件属性设置为null. yii\base\Component
applyTo() 如果可能, 将文件转换为主题文件. yii\base\Theme
attachBehavior() 将行为附加到此组件. yii\base\Component
attachBehaviors() 将行为列表附加到组件. yii\base\Component
behaviors() 返回此组件应该具有的行为列表. yii\base\Component
canGetProperty() 返回一个值, 指示属性是否可读取. yii\base\Component
canSetProperty() 返回一个值, 指示属性是否可设置. yii\base\Component
className() 返回此类的完全限定名称. yii\base\BaseObject
detachBehavior() 从组件中分离一个行为. yii\base\Component
detachBehaviors() 分离组件中的所有行为. yii\base\Component
ensureBehaviors() 确保在 behaviors() 中声明的行为已附加到此组件. yii\base\Component
getBasePath() 返回该主题的根路径. yii\base\Theme
getBaseUrl() 返回该主题的基本 URL. yii\base\Theme
getBehavior() 返回指定的行为对象. yii\base\Component
getBehaviors() 返回附加到此组件的所有行为. yii\base\Component
getPath() 使用 $basePath 将相对文件路径转换为绝对路径. yii\base\Theme
getUrl() 使用 $baseUrl 将相对 URL 转换为绝对 URL. yii\base\Theme
hasEventHandlers() 返回一个值, 指示是否有任何处理程序附加到指定的事件. yii\base\Component
hasMethod() 返回一个值, 指示方法是否已定义. yii\base\Component
hasProperty() 返回一个值, 指示属性是否已定义. yii\base\Component
init() 初始化对象. yii\base\BaseObject
off() 从该组件分离现有的事件处理程序. yii\base\Component
on() 将事件处理程序附加到事件. yii\base\Component
setBasePath() 设置该主题的根路径或 路径别名. yii\base\Theme
setBaseUrl() 设置该主题的基本 URL 或 路径别名. yii\base\Theme
trigger() 触发事件. yii\base\Component

属性详情

$basePath public 属性

该主题的根路径. 该主题的所有资源都位于此目录下.

public string $basePath null
$baseUrl public 属性

该主题的基本 URL(不带结束斜杠). 该主题的所有资源被视为在该基础 URL 下.

public string $baseUrl null
$pathMap public 属性

视图目录及其相应的主题版本之间的映射.

当视图尝试应用主题时, applyTo() 使用此属性.

指定目录时可以使用 路径别名.

如果此属性为空或未设置, 则将使用从 yii\base\Application::$basePath$basePath 的映射.

public array $pathMap null

方法详情

applyTo() public 方法

如果可能, 将文件转换为主题文件.

如果没有相应的主题文件, 则返回原始文件.

public string applyTo ( $path )
$path string

要使用的主题文件.

return string

主题文件; 如果主题版本不可用, 则为原始文件.

throws yii\base\InvalidConfigException

如果 $basePath 未设置.

getBasePath() public 方法

返回该主题的根路径.

参见 $pathMap.

public string getBasePath ( )
return string

该主题的根路径. 该主题的所有资源都位于该目录下.

getBaseUrl() public 方法

返回该主题的基本 URL.

public string getBaseUrl ( )
return string

该主题的基本 URL(不带结束斜杠). 该主题的所有资源被视为在该基础 URL 下.

getPath() public 方法

使用 $basePath 将相对文件路径转换为绝对路径.

public string getPath ( $path )
$path string

要转换的相对文件路径.

return string

绝对文件路径.

throws yii\base\InvalidConfigException

如果 $basePath 未设置.

getUrl() public 方法

使用 $baseUrl 将相对 URL 转换为绝对 URL.

public string getUrl ( $url )
$url string

要转换的相对 URL.

return string

绝对 URL.

throws yii\base\InvalidConfigException

如果 $baseUrl 未设置.

setBasePath() public 方法

设置该主题的根路径或 路径别名.

参见 $pathMap.

public void setBasePath ( $path )
$path string

该主题的根路径或 路径别名. 该主题的所有资源都位于该目录下.

setBaseUrl() public 方法

设置该主题的基本 URL 或 路径别名.

public void setBaseUrl ( $url )
$url string

该主题的基本 URL 或 路径别名. 该主题的所有资源均被视为在该基础 URL 下.