basilicom-pimcore-plugin / minify
Pimcore plugin with helper functions for minifying JS/CSS in templates
Installs: 488
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 1
Open Issues: 0
Type:pimcore-plugin
Requires
- mrclay/minify: ^2.3
- pimcore/installer-plugin: >=1
This package is auto-updated.
Last update: 2024-11-09 22:23:00 UTC
README
Developer info: Pimcore at basilicom
Synopsis
This plugin adds two new classes to help with with CSS and Javascript combination / minification in layouts / templates.
Installation
Add the "basilicom-pimcore-plugin/minify" requirement to the composer.json in the toplevel directory of your pimcore installation:
Example:
{
"require": {
"basilicom-pimcore-plugin/minify": ">=1.0.0"
}
}
Or run:
composer require basilicom-pimcore-plugin/minify
Then enable and install the Minify plugin in Pimcore Extension Manager (Extras > Extensions).
Integration
Add to your templates:
<?php
$js = new \Minify\Js();
echo $js->add("/website/static/js/jquery.js")
->add("/website/static/js/site.js")
->get();
?>
Or for CSS:
<?php
$js = new \Minify\Css();
echo $js->add("/website/static/css/bootstrap.css")
->add("/website/static/icons/icons.css")
->add("/website/static/css/site.css")
->get();
?>
Mode of operation
If Pimcore operates in the DEBUG mode, JS/CSS files are not minified
but individual html includes/tags for the files are generated - with timestamp
based cache busters (?ts=1486051521
).
In production mode, CSS and JS files are combined, minified, and written
to the /website/var/tmp/
directory as plugin_minify_*
files. Each set
of files gets their own cache file based on the md5 sum of the combined
filenames. For CSS files, relative urls/paths are automatically rewritten.
You can force regeneration of the minified files by adding a MINIFY_REFRESH
request parameter. Example: http://localhost/test/?MINIFY_REFRESH
Credits
Thanks to Dominik Pfaffenbauer for inspiration by providing a similar plugin: https://github.com/dpfaffenbauer/pimcore-minify (His one is using SimpleXML to parse the JS/CSS out of the DOM).
License
GNU General Public License version 3 (GPLv3)