Class yii\console\controllers\AssetController
允许你合并和压缩你的 JavaScript 和 CSS 文件。
用法:
使用
template
方法创建配置文件:yii asset/template /path/to/myapp/config.php
根据你的 web 应用的需要,编辑创建的配置文件。
使用创建的配置文件,运行 'compress' 动作:
yii asset /path/to/myapp/config.php /path/to/myapp/config/assets_compressed.php
调整你的 web 应用程序配置以使用压缩资源
注意:在控制台环境中一些 path alias 像 @webroot
和 @web
可能不存在,
因此应该直接指定配置中的相应路径。
注意:默认情况下这个命令依赖外部工具来执行实际的文件压缩, 核实 $jsCompressor 和 $cssCompressor 获取详细信息。
公共属性
属性 | 类型 | 描述 | 被定义在 |
---|---|---|---|
$action | yii\base\Action | The action that is currently being executed. | yii\base\Controller |
$assetManager | yii\web\AssetManager | 资源管理器实例。 | yii\console\controllers\AssetController |
$behaviors | yii\base\Behavior[] | List of behaviors attached to this component | yii\base\Component |
$bundles | array | 要压缩的资源包列表。 | yii\console\controllers\AssetController |
$color | boolean | 是否在输出中启用 ANSI 颜色。 如果未设置,则仅为支持 ANSI 颜色的终端启用 ANSI 颜色。 | yii\console\Controller |
$cssCompressor | string|callable | CSS 文件压缩程序。 如果是个字符串,它将被视为 shell 命令模版, 其中应该包含 占位符 {from} - 源文件名 - 和 {to} - 输出文件名。 否则,他被视为应该执行压缩的 PHP 回调。 默认值依赖于 "YUI Compressor" 的用法 | yii\console\controllers\AssetController |
$defaultAction | string | 控制器默认动作 ID。 | yii\console\controllers\AssetController |
$deleteSource | boolean | 压缩后是否删除资源源文件 此选项仅影响那些设置了 yii\web\AssetBundle::$sourcePath 的包。 | yii\console\controllers\AssetController |
$help | boolean | 是否显示有关当前命令的帮助信息。 | yii\console\Controller |
$helpSummary | string | yii\console\Controller | |
$id | string | The ID of this controller. | yii\base\Controller |
$interactive | boolean | 是否以交互方式运行命令。 | yii\console\Controller |
$jsCompressor | string|callable | JavaScript 文件压缩程序。 如果是个字符串,它将被视为 shell 命令模版,其中应该包含 占位符 {from} - 源文件名 - 和 {to} - 输出文件名。 否则,他被视为应该执行压缩的PHP回调。 默认值依赖于 "Closure Compiler" 的用法 | yii\console\controllers\AssetController |
$layout | null|string|false | The name of the layout to be applied to this controller's views. | yii\base\Controller |
$module | yii\base\Module | The module that this controller belongs to. | yii\base\Controller |
$modules | yii\base\Module[] | All ancestor modules that this controller is located within. | yii\base\Controller |
$passedOptionValues | array | 与传递的选项对应的属性 | yii\console\Controller |
$passedOptions | array | 执行期间传递的选项的名称 | yii\console\Controller |
$route | string | The route (module ID, controller ID and action ID) of the current request. | yii\base\Controller |
$targets | array | 表示输出压缩文件的资源包列表。
你可以使用 'css' 和 'js' 键来指定输出压缩文件的名称:
例如:
` php
'app\config\AllAsset' => [
'js' => 'js/all-{hash}. |
yii\console\controllers\AssetController |
$uniqueId | string | The controller ID that is prefixed with the module ID (if any). | yii\base\Controller |
$view | yii\base\View|yii\web\View | The view object that can be used to render views or view files. | yii\base\Controller |
$viewPath | string | The directory containing the view files for this controller. | yii\base\Controller |
公共方法
方法 | 描述 | 被定义在 |
---|---|---|
__call() | Calls the named method which is not a class method. | yii\base\Component |
__clone() | This method is called after the object is created by cloning an existing one. | yii\base\Component |
__construct() | yii\base\Controller | |
__get() | Returns the value of a component property. | yii\base\Component |
__isset() | Checks if a property is set, i.e. defined and not null. | yii\base\Component |
__set() | Sets the value of a component property. | yii\base\Component |
__unset() | Sets a component property to be null. | yii\base\Component |
actionCompress() | 根据给定的配置组合和压缩资源文件。 在此过程中将创建新的资产包配置文件。 为了使用压缩文件,您应该用这个文件替换原来的资源包配置。 | yii\console\controllers\AssetController |
actionTemplate() | 创建配置文件模板给 actionCompress()。 | yii\console\controllers\AssetController |
actions() | Declares external actions for the controller. | yii\base\Controller |
afterAction() | This method is invoked right after an action is executed. | yii\base\Controller |
ansiFormat() | 使用 ANSI 代码格式化字符串。 | yii\console\Controller |
attachBehavior() | Attaches a behavior to this component. | yii\base\Component |
attachBehaviors() | Attaches a list of behaviors to the component. | yii\base\Component |
beforeAction() | This method is invoked right before an action is executed. | yii\base\Controller |
behaviors() | Returns a list of behaviors that this component should behave as. | yii\base\Component |
bindActionParams() | 将参数绑定到动作。 当 yii\base\Action 开始使用给定的参数运行时,此方法被调用。 此方法首先将参数与操作可用的 options绑定。 然后验证给定的参数。 | yii\console\Controller |
canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\Component |
canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\Component |
className() | Returns the fully qualified name of this class. | yii\base\BaseObject |
combineCssFiles() | 将 CSS 文件合并到一个里面。 | yii\console\controllers\AssetController |
combineJsFiles() | 将 JavaScript 文件合并到一个里面。 | yii\console\controllers\AssetController |
confirm() | 要求用户通过键入 y 或 n 来确认。 | yii\console\Controller |
createAction() | Creates an action based on the given action ID. | yii\base\Controller |
detachBehavior() | Detaches a behavior from the component. | yii\base\Component |
detachBehaviors() | Detaches all behaviors from the component. | yii\base\Component |
ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. | yii\base\Component |
findLayoutFile() | Finds the applicable layout file. | yii\base\Controller |
getActionArgsHelp() | 返回动作的匿名参数的帮助信息。 | yii\console\Controller |
getActionHelp() | 返回指定动作的详细帮助信息。 | yii\console\Controller |
getActionHelpSummary() | 返回描述指定动作的一行简短摘要。 | yii\console\Controller |
getActionOptionsHelp() | 返回动作选项的帮助信息。 | yii\console\Controller |
getAssetManager() | 返回资源管理器实例。 | yii\console\controllers\AssetController |
getBehavior() | Returns the named behavior object. | yii\base\Component |
getBehaviors() | Returns all behaviors attached to this component. | yii\base\Component |
getHelp() | 返回此控制器的帮助信息。 | yii\console\Controller |
getHelpSummary() | 返回描述此控制器的一行简短摘要。 | yii\console\Controller |
getModules() | Returns all ancestor modules of this controller. | yii\base\Controller |
getOptionValues() | 返回与动作 ID 的选项对应的属性 子类可以重写此方法以指定可能的属性。 | yii\console\Controller |
getPassedOptionValues() | 返回与传递的选项对应的属性。 | yii\console\Controller |
getPassedOptions() | 返回执行期间传递的有效选项的名称。 | yii\console\Controller |
getRoute() | Returns the route of the current request. | yii\base\Controller |
getUniqueId() | Returns the unique ID of the controller. | yii\base\Controller |
getView() | Returns the view object that can be used to render views or view files. | yii\base\Controller |
getViewPath() | Returns the directory containing view files for this controller. | yii\base\Controller |
hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. | yii\base\Component |
hasMethod() | Returns a value indicating whether a method is defined. | yii\base\Component |
hasProperty() | Returns a value indicating whether a property is defined for this component. | yii\base\Component |
init() | Initializes the object. | yii\base\BaseObject |
isColorEnabled() | 返回一个指示是否启用 ANSI 颜色的值。 | yii\console\Controller |
off() | Detaches an existing event handler from this component. | yii\base\Component |
on() | Attaches an event handler to an event. | yii\base\Component |
optionAliases() | 返回选项别名。 子类可以重写此方法以指定别名选项。 | yii\console\Controller |
options() | 返回操作的有效选项的动作(id) 选项要求存在一个名为选项名的 公共成员变量。 子类可以重写此方法以指定可能的选项。 | yii\console\Controller |
prompt() | 提示用户输入并验证它。 | yii\console\Controller |
render() | Renders a view and applies layout if available. | yii\base\Controller |
renderContent() | Renders a static string by applying a layout. | yii\base\Controller |
renderFile() | Renders a view file. | yii\base\Controller |
renderPartial() | Renders a view without applying layout. | yii\base\Controller |
run() | Runs a request specified in terms of a route. | yii\base\Controller |
runAction() | 使用指定的动作 ID 和参数运行动作。 如果动作 ID 为空,则该方法将使用 $defaultAction。 | yii\console\Controller |
select() | 为用户提供可供选择的选项。给予 '?' 作为输入将显示 可供选择的选项列表及其解释。 | yii\console\Controller |
setAssetManager() | 设置资源管理器实例或配置。 | yii\console\controllers\AssetController |
setView() | Sets the view object to be used by this controller. | yii\base\Controller |
setViewPath() | Sets the directory that contains the view files. | yii\base\Controller |
stderr() | 将字符串打印到 STDERR。 | yii\console\Controller |
stdout() | 将字符串打印到 STDOUT。 | yii\console\Controller |
trigger() | Triggers an event. | yii\base\Component |
受保护的方法
Events
事件 | 类型 | 描述 | 被定义在 |
---|---|---|---|
EVENT_AFTER_ACTION | yii\base\ActionEvent | An event raised right after executing a controller action. | yii\base\Controller |
EVENT_BEFORE_ACTION | yii\base\ActionEvent | An event raised right before executing a controller action. | yii\base\Controller |
常量
常量 | 值 | 描述 | 被定义在 |
---|---|---|---|
EXIT_CODE_ERROR | 1 | Deprecated 自 2.0.13。使用 yii\console\ExitCode::UNSPECIFIED_ERROR 替代。 | yii\console\Controller |
EXIT_CODE_NORMAL | 0 | Deprecated 自 2.0.13。使用 yii\console\ExitCode::OK 替代。 | yii\console\Controller |
属性详情
资源管理器实例。
要压缩的资源包列表。
CSS 文件压缩程序。 如果是个字符串,它将被视为 shell 命令模版, 其中应该包含 占位符 {from} - 源文件名 - 和 {to} - 输出文件名。 否则,他被视为应该执行压缩的 PHP 回调。
默认值依赖于 "YUI Compressor" 的用法
控制器默认动作 ID。
压缩后是否删除资源源文件 此选项仅影响那些设置了 yii\web\AssetBundle::$sourcePath 的包。
JavaScript 文件压缩程序。 如果是个字符串,它将被视为 shell 命令模版,其中应该包含 占位符 {from} - 源文件名 - 和 {to} - 输出文件名。 否则,他被视为应该执行压缩的PHP回调。
默认值依赖于 "Closure Compiler" 的用法
表示输出压缩文件的资源包列表。 你可以使用 'css' 和 'js' 键来指定输出压缩文件的名称: 例如:
'app\config\AllAsset' => [
'js' => 'js/all-{hash}.js',
'css' => 'css/all-{hash}.css',
'depends' => [ ... ],
]
文件名可以包含占位符 "{hash}",他将由生成的文件的哈希填充。
为了压缩不通的资源组,你可以指定多个目标包。 在这种情况下你应该使用 'depends' 键来指定,哪些包应该包含在特定的目标包中。 对于单个包,你可以将 'depends' 保留为空,它将压缩所有剩下的包 在这种情况下。 例如:
'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 void actionCompress($configFile, $bundleFile) | ||
$configFile | string | 配置文件名。 |
$bundleFile | string | 输出资源包配置文件名。 |
创建配置文件模板给 actionCompress()。
public integer actionTemplate($configFile) | ||
$configFile | string | 输出文件名。 |
return | integer | CLI 退出码。 |
---|---|---|
throws | yii\console\Exception | 失败。 |
调整 CSS 内容允许指向原始资源的 URL 引用。
protected string adjustCssUrl($cssContent, $inputFilePath, $outputFilePath) | ||
$cssContent | string | 源 CSS 内容。 |
$inputFilePath | string | 输入 CSS 文件名。 |
$outputFilePath | string | 输出 CSS 文件名。 |
return | string | 调整后的 CSS 内容。 |
---|
按照源包依赖输出的方式调整资源包之间的依赖关系。
protected yii\web\AssetBundle[] adjustDependency($targets, $bundles) | ||
$targets | yii\web\AssetBundle[] | 输出资源包。 |
$bundles | yii\web\AssetBundle[] | 源资源包。 |
return | yii\web\AssetBundle[] | 输出资源包。 |
---|
构建输出资源包。
protected void buildTarget($target, $type, $bundles) | ||
$target | yii\web\AssetBundle | 输出资源包。 |
$type | string | 'js' 或 'css'。 |
$bundles | yii\web\AssetBundle[] | 源资源包。 |
throws | yii\console\Exception | 失败。 |
---|
将 CSS 文件合并到一个里面。
public void combineCssFiles($inputFiles, $outputFile) | ||
$inputFiles | array | 源文件名字。 |
$outputFile | string | 输出文件名。 |
throws | yii\console\Exception | 失败。 |
---|
将 JavaScript 文件合并到一个里面。
public void combineJsFiles($inputFiles, $outputFile) | ||
$inputFiles | array | 源文件名字。 |
$outputFile | string | 输出文件名。 |
throws | yii\console\Exception | 失败。 |
---|
压缩给定的 CSS 文件并将他们合并到一个文件里面。
protected void compressCssFiles($inputFiles, $outputFile) | ||
$inputFiles | array | 源文件名字列表。 |
$outputFile | string | 输出文件名。 |
throws | yii\console\Exception | 失败 |
---|
压缩给定的 JavaScript 文件并将他们合并到一个文件里面。
protected void compressJsFiles($inputFiles, $outputFile) | ||
$inputFiles | array | 源文件名字列表。 |
$outputFile | string | 输出文件名。 |
throws | yii\console\Exception | 失败 |
---|
返回资源管理器实例。
public yii\web\AssetManager getAssetManager() | ||
return | yii\web\AssetManager | 资源管理器实例。 |
---|---|---|
throws | yii\console\Exception | 在无效配置上。 |
创建源资源包的完整列表。
protected yii\web\AssetBundle[] loadBundles($bundles) | ||
$bundles | string[] | 资源包名称列表。 |
return | yii\web\AssetBundle[] | 源资源包列表。 |
---|
将给定文件中的配置应用于自身实例。
protected void loadConfiguration($configFile) | ||
$configFile | string | 配置文件名。 |
throws | yii\console\Exception | 失败。 |
---|
递归加载资源包依赖项。
protected void loadDependency($bundle, &$result) | ||
$bundle | yii\web\AssetBundle | 包实例 |
$result | array | 已经记载包列表。 |
throws | yii\console\Exception | 失败。 |
---|
创建输出资源包的完整列表。
protected yii\web\AssetBundle[] loadTargets($targets, $bundles) | ||
$targets | array | 输出资源包配置。 |
$bundles | yii\web\AssetBundle[] | 源资源包列表。 |
return | yii\web\AssetBundle[] | 输出资源包列表。 |
---|---|---|
throws | yii\console\Exception | 失败。 |
注册资源包包括其依赖项。
protected void registerBundle($bundles, $name, &$registered) | ||
$bundles | yii\web\AssetBundle[] | 资源包列表。 |
$name | string | 包名字。 |
$registered | array | 存储已注册的名字。 |
throws | yii\console\Exception | 如果检测到循环依赖项。 |
---|
保存新的资源包配置。
protected void saveTargets($targets, $bundleFile) | ||
$targets | yii\web\AssetBundle[] | 要保存的资源包列表。 |
$bundleFile | string | 输出文件名。 |
throws | yii\console\Exception | 失败。 |
---|
设置资源管理器实例或配置。
public void setAssetManager($assetManager) | ||
$assetManager | yii\web\AssetManager|array | 资源管理器实例或它的配置数组。 |
throws | yii\console\Exception | 在无效参数类型上。 |
---|