Simple PHP class to minify both your javascript and css the best existing way (uglify-js for JS, clean-css for CSS) and if node is not available, PHP fallbacks are used instead.
First you need composer if you have not already. Then get the package with composer require nodejs-php-fallback/uglify
then require the composer autload in your PHP file if it's not already:
<?php
use NodejsPhpFallback\Uglify;
// Require the composer autoload in your PHP file if it's not already.
// You do not need to if you use a framework with composer like Symfony, Laravel, etc.
require 'vendor/autoload.php';
$uglify = new Uglify(array(
'path/to/my-first-file.js',
'path/to/my-second-file.js',
));
$uglify->add('path/to/my-thrid-file.js');
// Output to a file:
$uglify->write('path/to/destination.min.js');
// Output to the browser:
header('Content-type: text/javascript');
echo $uglify;
Uglify will use js minification by default. If the first source path end with .css or you use ->write()
with a path ending with .css, it will switch to CSS mode. Else you can switch manually or get explicitly JS/CSS minified:
$uglify->jsMode();
echo $uglify; // display minified javascript
$uglify->cssMode();
echo $uglify; // display minified css
// or
echo $uglify->getMinifiedJs(); // display minified javascript
echo $uglify->getMinifiedCss(); // display minified css
To report a security vulnerability, please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure.