Class yii\console\controllers\AssetController
Inheritance | yii\console\controllers\AssetController » yii\console\Controller » yii\base\Controller » yii\base\Component » yii\base\BaseObject |
---|---|
Implements | yii\base\Configurable, yii\base\ViewContextInterface |
Available since version | 2.0 |
Source Code | https://github.com/yiisoft/yii2/blob/master/framework/console/controllers/AssetController.php |
Allows you to combine and compress your JavaScript and CSS files.
Usage:
Create a configuration file using the
template
action:yii asset/template /path/to/myapp/config.php
- Edit the created config file, adjusting it for your web application needs.
Run the 'compress' action, using created config:
yii asset /path/to/myapp/config.php /path/to/myapp/config/assets_compressed.php
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.
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$action | yii\base\Action | The action that is currently being executed. | yii\base\Controller |
$assetManager | yii\web\AssetManager | Asset manager instance. | yii\console\controllers\AssetController |
$behaviors | yii\base\Behavior[] | List of behaviors attached to this component | yii\base\Component |
$bundles | array | List of asset bundles to be compressed. | yii\console\controllers\AssetController |
$color | boolean | Whether to enable ANSI color in the output. | 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 | Whether to display help information about current command. | yii\console\Controller |
$helpSummary | string | yii\console\Controller | |
$id | string | The ID of this controller. | yii\base\Controller |
$interactive | boolean | Whether to run the command interactively. | yii\console\Controller |
$jsCompressor | string|callable | JavaScript file compressor. | 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 | The properties corresponding to the passed options | yii\console\Controller |
$passedOptions | array | The names of the options passed during execution | yii\console\Controller |
$route | string | The route (module ID, controller ID and action ID) of the current request. | yii\base\Controller |
$targets | array | List of asset bundles, which represents output compressed files. | 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 |
Public Methods
Method | Description | Defined By |
---|---|---|
__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() | 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() | Declares external actions for the controller. | yii\base\Controller |
afterAction() | This method is invoked right after an action is executed. | yii\base\Controller |
ansiFormat() | Formats a string with ANSI codes. | 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() | Binds the parameters to the action. | 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() | Combines CSS files into a single one. | yii\console\controllers\AssetController |
combineJsFiles() | Combines JavaScript files into a single one. | yii\console\controllers\AssetController |
confirm() | Asks user to confirm by typing y or 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() | Returns the help information for the anonymous arguments for the action. | yii\console\Controller |
getActionHelp() | Returns the detailed help information for the specified action. | yii\console\Controller |
getActionHelpSummary() | Returns a one-line short summary describing the specified action. | yii\console\Controller |
getActionOptionsHelp() | Returns the help information for the options for the action. | yii\console\Controller |
getAssetManager() | Returns the asset manager instance. | 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() | Returns help information for this controller. | yii\console\Controller |
getHelpSummary() | Returns one-line short summary describing this controller. | yii\console\Controller |
getModules() | Returns all ancestor modules of this controller. | yii\base\Controller |
getOptionValues() | Returns properties corresponding to the options for the action id Child classes may override this method to specify possible properties. | yii\console\Controller |
getPassedOptionValues() | Returns the properties corresponding to the passed options. | yii\console\Controller |
getPassedOptions() | Returns the names of valid options passed during execution. | 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() | Returns a value indicating whether ANSI color is enabled. | 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() | Returns option alias names. | yii\console\Controller |
options() | Returns the names of valid options for the action (id) An option requires the existence of a public member variable whose name is the option name. | yii\console\Controller |
prompt() | Prompts the user for input and validates it. | 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() | Runs an action with the specified action ID and parameters. | yii\console\Controller |
select() | Gives the user an option to choose from. Giving '?' as an input will show a list of options to choose from and their explanations. | yii\console\Controller |
setAssetManager() | Sets asset manager instance or configuration. | 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() | Prints a string to STDERR. | yii\console\Controller |
stdout() | Prints a string to STDOUT. | yii\console\Controller |
trigger() | Triggers an event. | yii\base\Component |
Protected Methods
Method | Description | Defined By |
---|---|---|
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 |
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() | Returns full description from the docblock. | yii\console\Controller |
parseDocCommentSummary() | Returns the first line of docblock. | yii\console\Controller |
parseDocCommentTags() | Parses the comment block into tags. | yii\console\Controller |
registerBundle() | Registers asset bundles including their dependencies. | yii\console\controllers\AssetController |
saveTargets() | Saves new asset bundles configuration. | yii\console\controllers\AssetController |
Events
Event | Type | Description | Defined By |
---|---|---|---|
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 |
Constants
Constant | Value | Description | Defined By |
---|---|---|---|
EXIT_CODE_ERROR | 1 | Deprecated since 2.0.13. Use yii\console\ExitCode::UNSPECIFIED_ERROR instead. | yii\console\Controller |
EXIT_CODE_NORMAL | 0 | Deprecated since 2.0.13. Use yii\console\ExitCode::OK instead. | yii\console\Controller |
Property Details
Asset manager instance.
List of asset bundles to be compressed.
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"
See also https://github.com/yui/yuicompressor/.
Controller default action ID.
Whether to delete asset source files after compression. This option affects only those bundles, which have yii\web\AssetBundle::$sourcePath is set.
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"
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
],
Method Details
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. |
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. |
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. |
---|
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. |
---|
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. |
---|
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. |
---|
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. |
---|
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 |
---|
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 |
---|
Returns the asset manager instance.
public yii\web\AssetManager getAssetManager ( ) | ||
return | yii\web\AssetManager | Asset manager instance. |
---|---|---|
throws | yii\console\Exception | on invalid configuration. |
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. |
---|
Applies configuration from the given file to self instance.
protected void loadConfiguration ( $configFile ) | ||
$configFile | string | Configuration file name. |
throws | yii\console\Exception | on failure. |
---|
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. |
---|
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. |
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. |
---|
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. |
---|
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. |
---|