Assets plugin for CakePHP

1.5.2 2019-09-05 14:38 UTC


cakephp-assets is a CakePHP plugin to allows you to handle and generate assets.

It uses matthiasmullie/minify and provides a convenient helper that allows you to combine multiple asset files into one single compressed file.


You can install the plugin via composer:

$ composer require --prefer-dist jeffersonsimaongoncalves/cakephp-assets

NOTE: the latest version available requires at least CakePHP 3.7.

Instead, the cakephp3.2 branch is compatible with all previous versions of CakePHP from version 3.2.4.
This branch coincides with the 1.4 version of cakephp-assets and in any case it will no longer receive new features but only bugfixes.

In this case, you can install the package as well:

$ composer require --prefer-dist jeffersonsimaongoncalves/cakephp-assets:dev-cakephp3.2

After installation, you have to edit APP/config/bootstrap.php to load the plugin:

Plugin::load('JeffersonSimaoGoncalves/Assets', ['bootstrap' => true, 'routes' => true]);

For more information on how to load the plugin, please refer to the Cookbook.

By default the plugin uses the APP/tmp/assets directory to save the asset files. So you have to create the directory and make it writable:

$ mkdir tmp/assets && chmod 775 tmp/assets

If you want to use a different directory, read below.


The plugin uses some configuration parameters and you can set them using the \Cake\Core\Configure class, before loading the plugin.

For example, you can do this at the bottom of the file APP/config/app.php of your application.

Configuration values

Configure::write('Assets.force', false);

Setting Assets.force to true, the assets will be used even if debugging is enabled.

Configure::write('', TMP . 'assets');

Setting, you can use another directory where the plugin will generate the assets.

How to use

You have to use only the AssetHelper. This helper provides css() and script() methods, similar to the methods provided by the HtmlHelper.

The syntax is the same, you just have to change the name helper. Example for AssetHelper::css().

echo $this->Asset->css(['one.css', 'two.css']);

This will combine and compress one.css and two.css files, creating a unique asset file, and will create a link element for CSS stylesheets, as does the method provided by the HtmlHelper.

The same also applies to the AssetHelper::script() method.


For transparency and insight into our release cycle and to maintain backward compatibility, cakephp-assets will be maintained under the Semantic Versioning guidelines.


This work is based on the code by Mirko Pagliai.