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.
Did you like this plugin? Its development requires a lot of time for me. Please consider the possibility of making a donation: even a coffee is enough! Thank you.
You can install the plugin via composer:
$ composer require --prefer-dist mirko-pagliai/cakephp-assets
Then you have to load the plugin. For more information on how to load the plugin, please refer to the Cookbook.
Simply, you can execute the shell command to enable the plugin:
bin/cake plugin load Assets
This would update your application's bootstrap method.
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 the Configuration section.
Recent packages and the master branch require at least CakePHP 5.0 and PHP 8.1 and the current development of the code is based on these and later versions of CakePHP and PHP. However, there are still some branches compatible with previous versions of CakePHP and PHP.
The cakephp4 branch
requires at least PHP >=7.2
and CakePHP ^4.0
.
In this case, you can install the package as well:
$ composer require --prefer-dist mirko-pagliai/cakephp-assets:dev-cakephp4
Note that the cakephp4
branch will no longer be updated as of January 5, 2024,
except for security patches, and it matches the
1.5.13 version.
The cakephp3 branch requires at least PHP 5.6 and CakePHP 3.
In this case, you can install the package as well:
$ composer require --prefer-dist mirko-pagliai/cakephp-assets:dev-cakephp3
Note that the cakephp3
branch will no longer be updated as of April 27, 2021,
except for security patches, and it matches the
1.5.4 version.
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.
Configure::write('Assets.force', false);
Setting Assets.force
to true
, the assets will be used even if debugging is
enabled.
Configure::write('Assets.target', TMP . 'assets');
Setting Assets.target
, you can use another directory where the plugin will
generate the assets.
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.
Refer to our API.
For transparency and insight into our release cycle and to maintain backward compatibility, cakephp-assets will be maintained under the Semantic Versioning guidelines.