Class yii\console\controllers\AssetController

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

Allows you to combine and compress your JavaScript and CSS files.

Usage:

  1. Create a configuration file using the template action:

    yii asset/template /path/to/myapp/config.php

  2. Edit the created config file, adjusting it for your web application needs.
  3. Run the 'compress' action, using created config:

    yii asset /path/to/myapp/config.php /path/to/myapp/config/assets_compressed.php

  4. Adjust your web application config to use compressed assets.

Note: in the console environment some path aliases like @webroot and @web may not exist, so corresponding paths inside the configuration should be specified directly.

Note: by default this command relies on an external tools to perform actual files compression, check $jsCompressor and $cssCompressor for more details.

公共属性

隐藏继承的属性

属性类型描述定义在
$action yii\base\Action|null 当前正在执行的动作. yii\base\Controller
$assetManager yii\web\AssetManager Asset manager instance. Note that the type of this property differs in getter and setter. See getAssetManager() and setAssetManager() for details. yii\console\controllers\AssetController
$behaviors yii\base\Behavior[] 附加到此组件的行为列表. 该属性是只读的. yii\base\Component
$bundles array List of asset bundles to be compressed. yii\console\controllers\AssetController
$color boolean|null 是否在输出中启用 ANSI 颜色. yii\console\Controller
$cssCompressor string|callable CSS file compressor. yii\console\controllers\AssetController
$defaultAction string Controller default action ID. yii\console\controllers\AssetController
$deleteSource boolean Whether to delete asset source files after compression. yii\console\controllers\AssetController
$help boolean 是否显示有关当前命令的帮助信息. yii\console\Controller
$helpSummary string 该属性是只读的. yii\console\Controller
$id string 该控制器的ID. yii\base\Controller
$interactive boolean 是否以交互方式运行命令. yii\console\Controller
$jsCompressor string|callable JavaScript file compressor. yii\console\controllers\AssetController
$layout null|string|false 要应用于此控制器的视图的布局的名称. yii\base\Controller
$module yii\base\Module 该控制器所属的模块. yii\base\Controller
$modules yii\base\Module[] 该控制器所在的所有祖先模块. 该属性是只读的. yii\base\Controller
$passedOptionValues array 与传递的选项相对应的属性. 该属性是只读的. yii\console\Controller
$passedOptions array 执行期间传递的选项名称. 该属性是只读的. yii\console\Controller
$request yii\console\Request yii\console\Controller
$response yii\console\Response yii\console\Controller
$route string 当前请求的路由(模块ID, 控制器ID和动作ID). 该属性是只读的. yii\base\Controller
$silentExitOnException boolean|null 如果为true, 脚本在出现异常的情况下以ExitCode::OK结尾; 如果为false, ExitCode::UNSPECIFIED_ERROR. yii\console\Controller
$targets array List of asset bundles, which represents output compressed files. yii\console\controllers\AssetController
$uniqueId string 以模块ID(如果有)为前缀的控制器ID. 该属性是只读的. yii\base\Controller
$view yii\base\View|yii\web\View 可用于渲染视图或视图文件的视图对象. yii\base\Controller
$viewPath string 包含此控制器的视图文件的目录. yii\base\Controller

公共方法

隐藏继承的方法

方法描述定义在
__call() 调用不是类方法的指定的方法. yii\base\Component
__clone() 在通过克隆现有对象创建对象之后调用此方法. yii\base\Component
__construct() 构造函数. yii\base\Controller
__get() 返回组件属性的值. yii\base\Component
__isset() 检查属性是否已设置, 即已定义且不为null. yii\base\Component
__set() 设置组件属性的值. yii\base\Component
__unset() 将组件属性设置为null. yii\base\Component
actionCompress() Combines and compresses the asset files according to the given configuration. yii\console\controllers\AssetController
actionTemplate() Creates template of configuration file for actionCompress(). yii\console\controllers\AssetController
actions() 为控制器声明外部动作. yii\base\Controller
afterAction() 执行动作后立即调用该方法. yii\base\Controller
ansiFormat() 使用 ANSI 代码格式化字符串. yii\console\Controller
attachBehavior() 将行为附加到此组件. yii\base\Component
attachBehaviors() 将行为列表附加到组件. yii\base\Component
beforeAction() 在执行动作之前立即调用该方法. yii\console\Controller
behaviors() 返回此组件应该具有的行为列表. yii\base\Component
bindActionParams() 将参数绑定到动作. yii\console\Controller
canGetProperty() 返回一个值, 指示属性是否可读取. yii\base\Component
canSetProperty() 返回一个值, 指示属性是否可设置. yii\base\Component
className() 返回此类的完全限定名称. yii\base\BaseObject
combineCssFiles() Combines CSS files into a single one. yii\console\controllers\AssetController
combineJsFiles() Combines JavaScript files into a single one. yii\console\controllers\AssetController
confirm() 要求用户输入yn进行确认. yii\console\Controller
createAction() 根据给定的动作ID创建一个动作. yii\base\Controller
detachBehavior() 从组件中分离一个行为. yii\base\Component
detachBehaviors() 分离组件中的所有行为. yii\base\Component
ensureBehaviors() 确保在 behaviors() 中声明的行为已附加到此组件. yii\base\Component
findLayoutFile() 查找适用的布局文件. yii\base\Controller
getActionArgsHelp() 返回动作的匿名参数的帮助信息. yii\console\Controller
getActionHelp() 返回指定动作的详细帮助信息. yii\console\Controller
getActionHelpSummary() 返回描述指定动作的单行简单摘要. yii\console\Controller
getActionOptionsHelp() 返回动作选项的帮助信息. yii\console\Controller
getAssetManager() Returns the asset manager instance. yii\console\controllers\AssetController
getBehavior() 返回指定的行为对象. yii\base\Component
getBehaviors() 返回附加到此组件的所有行为. yii\base\Component
getHelp() 返回此控制器的帮助信息. yii\console\Controller
getHelpSummary() 返回描述此控制器的单行简单摘要. yii\console\Controller
getModules() 返回此控制器的所有祖先模块. yii\base\Controller
getOptionValues() 返回与动作id的选项相对应的属性. yii\console\Controller
getPassedOptionValues() 返回与传递的选项相对应的属性. yii\console\Controller
getPassedOptions() 返回执行期间传递的选项的名称. yii\console\Controller
getRoute() 返回当前请求的路由. yii\base\Controller
getUniqueId() 返回控制器的唯一ID. yii\base\Controller
getView() 返回可用于渲染视图或视图文件的视图对象. yii\base\Controller
getViewPath() 返回包含此控制器的视图文件的目录. yii\base\Controller
hasEventHandlers() 返回一个值, 指示是否有任何处理程序附加到指定的事件. yii\base\Component
hasMethod() 返回一个值, 指示方法是否已定义. yii\base\Component
hasProperty() 返回一个值, 指示属性是否已定义. yii\base\Component
init() 初始化对象. yii\base\Controller
isColorEnabled() 返回一个值, 该值指示是否启用 ANSI 颜色. yii\console\Controller
off() 从该组件分离现有的事件处理程序. yii\base\Component
on() 将事件处理程序附加到事件. yii\base\Component
optionAliases() 返回选项别名. yii\console\Controller
options() 返回动作的有效操作选项. yii\console\Controller
prompt() 提示用户输入并验证输入. yii\console\Controller
render() 渲染视图并应用布局(如果可用). yii\base\Controller
renderContent() 通过应用布局渲染静态字符串. yii\base\Controller
renderFile() 渲染视图文件. yii\base\Controller
renderPartial() 渲染视图而不使用布局. yii\base\Controller
run() 运行根据路由指定的请求. yii\base\Controller
runAction() 使用指定的动作id和参数运行一个动作. yii\console\Controller
select() 给用户一个选择的选项. yii\console\Controller
setAssetManager() Sets asset manager instance or configuration. yii\console\controllers\AssetController
setView() 设置此控制器使用的视图对象. yii\base\Controller
setViewPath() 设置包含视图文件的目录. yii\base\Controller
stderr() 将字符串打印到 STDERR. yii\console\Controller
stdout() 将字符串打印到 STDOUT. yii\console\Controller
trigger() 触发事件. yii\base\Component

受保护的方法

隐藏继承的方法

方法描述定义在
adjustCssUrl() Adjusts CSS content allowing URL references pointing to the original resources. yii\console\controllers\AssetController
adjustDependency() Adjust dependencies between asset bundles in the way source bundles begin to depend on output ones. yii\console\controllers\AssetController
bindInjectedParams() 根据操作方法签名中的类型和名称填充参数. yii\base\Controller
buildTarget() Builds output asset bundle. yii\console\controllers\AssetController
compressCssFiles() Compresses given CSS files and combines them into the single one. yii\console\controllers\AssetController
compressJsFiles() Compresses given JavaScript files and combines them into the single one. yii\console\controllers\AssetController
getActionMethodReflection() yii\console\Controller
loadBundles() Creates full list of source asset bundles. yii\console\controllers\AssetController
loadConfiguration() Applies configuration from the given file to self instance. yii\console\controllers\AssetController
loadDependency() Loads asset bundle dependencies recursively. yii\console\controllers\AssetController
loadTargets() Creates full list of output asset bundles. yii\console\controllers\AssetController
parseDocCommentDetail() 从文档块返回完整描述. yii\console\Controller
parseDocCommentSummary() 返回文档块的第一行. yii\console\Controller
parseDocCommentTags() 将注释块解析为标签. yii\console\Controller
registerBundle() Registers asset bundles including their dependencies. yii\console\controllers\AssetController
saveTargets() Saves new asset bundles configuration. yii\console\controllers\AssetController

事件

隐藏继承的事件

事件类型描述定义在
EVENT_AFTER_ACTION yii\base\ActionEvent 执行控制器动作后立即触发的事件. yii\base\Controller
EVENT_BEFORE_ACTION yii\base\ActionEvent 在执行控制器动作之前触发的事件. yii\base\Controller

常量

隐藏继承的常量

常量描述定义在
EXIT_CODE_ERROR 1 Deprecated since 2.0.13. 改用 yii\console\ExitCode::UNSPECIFIED_ERROR. yii\console\Controller
EXIT_CODE_NORMAL 0 Deprecated since 2.0.13. 改用 yii\console\ExitCode::OK. yii\console\Controller

属性详情

$assetManager public 属性

Asset manager instance. Note that the type of this property differs in getter and setter. See getAssetManager() and setAssetManager() for details.

$bundles public 属性

List of asset bundles to be compressed.

public array $bundles = []
$cssCompressor public 属性

CSS file compressor. If a string, it is treated as shell command template, which should contain placeholders {from} - source file name - and {to} - output file name. Otherwise, it is treated as PHP callback, which should perform the compression.

Default value relies on usage of "YUI Compressor"

参见 https://github.com/yui/yuicompressor/.

public string|callable $cssCompressor 'java -jar yuicompressor.jar --type css {from} -o {to}'
$defaultAction public 属性

Controller default action ID.

public string $defaultAction 'compress'
$deleteSource public 属性 (可用自版本: 2.0.10)

Whether to delete asset source files after compression. This option affects only those bundles, which have yii\web\AssetBundle::$sourcePath is set.

public boolean $deleteSource false
$jsCompressor public 属性

JavaScript file compressor. If a string, it is treated as shell command template, which should contain placeholders {from} - source file name - and {to} - output file name. Otherwise, it is treated as PHP callback, which should perform the compression.

Default value relies on usage of "Closure Compiler"

参见 https://developers.google.com/closure/compiler/.

public string|callable $jsCompressor 'java -jar compiler.jar --js {from} --js_output_file {to}'
$targets public 属性

List of asset bundles, which represents output compressed files. You can specify the name of the output compressed file using 'css' and 'js' keys: For example:

'app\config\AllAsset' => [
    'js' => 'js/all-{hash}.js',
    'css' => 'css/all-{hash}.css',
    'depends' => [ ... ],
]

File names can contain placeholder "{hash}", which will be filled by the hash of the resulting file.

You may specify several target bundles in order to compress different groups of assets. In this case you should use 'depends' key to specify, which bundles should be covered with particular target bundle. You may leave 'depends' to be empty for single bundle, which will compress all remaining bundles in this case. For example:

'allShared' => [
    'js' => 'js/all-shared-{hash}.js',
    'css' => 'css/all-shared-{hash}.css',
    'depends' => [
        // Include all assets shared between 'backend' and 'frontend'
        'yii\web\YiiAsset',
        'app\assets\SharedAsset',
    ],
],
'allBackEnd' => [
    'js' => 'js/all-{hash}.js',
    'css' => 'css/all-{hash}.css',
    'depends' => [
        // Include only 'backend' assets:
        'app\assets\AdminAsset'
    ],
],
'allFrontEnd' => [
    'js' => 'js/all-{hash}.js',
    'css' => 'css/all-{hash}.css',
    'depends' => [], // Include all remaining assets
],
public array $targets = []

方法详情

actionCompress() public 方法

Combines and compresses the asset files according to the given configuration.

During the process new asset bundle configuration file will be created. You should replace your original asset bundle configuration with this file in order to use compressed files.

public void actionCompress ( $configFile, $bundleFile )
$configFile string

Configuration file name.

$bundleFile string

Output asset bundles configuration file name.

actionTemplate() public 方法

Creates template of configuration file for actionCompress().

public integer actionTemplate ( $configFile )
$configFile string

Output file name.

return integer

CLI exit code

throws yii\console\Exception

on failure.

adjustCssUrl() protected 方法

Adjusts CSS content allowing URL references pointing to the original resources.

protected string adjustCssUrl ( $cssContent, $inputFilePath, $outputFilePath )
$cssContent string

Source CSS content.

$inputFilePath string

Input CSS file name.

$outputFilePath string

Output CSS file name.

return string

Adjusted CSS content.

adjustDependency() protected 方法

Adjust dependencies between asset bundles in the way source bundles begin to depend on output ones.

protected yii\web\AssetBundle[] adjustDependency ( $targets, $bundles )
$targets yii\web\AssetBundle[]

Output asset bundles.

$bundles yii\web\AssetBundle[]

Source asset bundles.

return yii\web\AssetBundle[]

Output asset bundles.

buildTarget() protected 方法

Builds output asset bundle.

protected void buildTarget ( $target, $type, $bundles )
$target yii\web\AssetBundle

Output asset bundle

$type string

Either 'js' or 'css'.

$bundles yii\web\AssetBundle[]

Source asset bundles.

throws yii\console\Exception

on failure.

combineCssFiles() public 方法

Combines CSS files into a single one.

public void combineCssFiles ( $inputFiles, $outputFile )
$inputFiles array

Source file names.

$outputFile string

Output file name.

throws yii\console\Exception

on failure.

combineJsFiles() public 方法

Combines JavaScript files into a single one.

public void combineJsFiles ( $inputFiles, $outputFile )
$inputFiles array

Source file names.

$outputFile string

Output file name.

throws yii\console\Exception

on failure.

compressCssFiles() protected 方法

Compresses given CSS files and combines them into the single one.

protected void compressCssFiles ( $inputFiles, $outputFile )
$inputFiles array

List of source file names.

$outputFile string

Output file name.

throws yii\console\Exception

on failure

compressJsFiles() protected 方法

Compresses given JavaScript files and combines them into the single one.

protected void compressJsFiles ( $inputFiles, $outputFile )
$inputFiles array

List of source file names.

$outputFile string

Output file name.

throws yii\console\Exception

on failure

getAssetManager() public 方法

Returns the asset manager instance.

public yii\web\AssetManager getAssetManager ( )
return yii\web\AssetManager

Asset manager instance.

throws yii\console\Exception

on invalid configuration.

loadBundles() protected 方法

Creates full list of source asset bundles.

protected yii\web\AssetBundle[] loadBundles ( $bundles )
$bundles string[]

List of asset bundle names

return yii\web\AssetBundle[]

List of source asset bundles.

loadConfiguration() protected 方法

Applies configuration from the given file to self instance.

protected void loadConfiguration ( $configFile )
$configFile string

Configuration file name.

throws yii\console\Exception

on failure.

loadDependency() protected 方法

Loads asset bundle dependencies recursively.

protected void loadDependency ( $bundle, &$result )
$bundle yii\web\AssetBundle

Bundle instance

$result array

Already loaded bundles list.

throws yii\console\Exception

on failure.

loadTargets() protected 方法

Creates full list of output asset bundles.

protected yii\web\AssetBundle[] loadTargets ( $targets, $bundles )
$targets array

Output asset bundles configuration.

$bundles yii\web\AssetBundle[]

List of source asset bundles.

return yii\web\AssetBundle[]

List of output asset bundles.

throws yii\console\Exception

on failure.

registerBundle() protected 方法

Registers asset bundles including their dependencies.

protected void registerBundle ( $bundles, $name, &$registered )
$bundles yii\web\AssetBundle[]

Asset bundles list.

$name string

Bundle name.

$registered array

Stores already registered names.

throws yii\console\Exception

if circular dependency is detected.

saveTargets() protected 方法

Saves new asset bundles configuration.

protected void saveTargets ( $targets, $bundleFile )
$targets yii\web\AssetBundle[]

List of asset bundles to be saved.

$bundleFile string

Output file name.

throws yii\console\Exception

on failure.

setAssetManager() public 方法

Sets asset manager instance or configuration.

public void setAssetManager ( $assetManager )
$assetManager yii\web\AssetManager|array

Asset manager instance or its array configuration.

throws yii\console\Exception

on invalid argument type.