bissolli/php-css-js-minifier

A PHP Class to merge and minify CSS and JavaScript files.

v1.1 2022-10-23 09:36 UTC

This package is auto-updated.

Last update: 2024-04-23 13:14:40 UTC


README

Build Status Latest Stable Version Total Downloads License

Composer package to merge and minify a list of Js and Css files.

Installation

Using composer

composer require bissolli/php-css-js-minifier

If you don't have composer

You can download it here.

Code Example

Instantiate the class:

$minifier = new \Bissolli\PhpMinifier\Minifier();

Add all the paths of css files that you wish to merge and minify:

// You can load external assets
$minifier->addCssFile('https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap-reboot.css');

// Use relative path to add the file
$minifier->addCssFile('./data/style1.css');

// Full path is also accepted
$minifier->addCssFile('/{FULL_PATH}/php-css-js-minifier/examples/data/style2.css');

// Array is also allowed
$minifier->addCssFile([
    'https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap-reboot.css',
    './data/style1.css',
    '/{FULL_PATH}/php-css-js-minifier/examples/data/style2.css'
]);

Add all the paths of js files that you wish to merge and minify:

// As CSS files, you can load full path, relative and external links.
// Array is also allowed
$minifier->addJsFile('./data/script1.js');
$minifier->addJsFile('/{FULL_PATH}/php-css-js-minifier/examples/data/script2.js');

NOTE: You don't need to add Css AND Js files at the same time, it's possible to add only Css or Js files if needed.

Once all the files are added, let's merge and minify all of them:

// Minify and save css and js files
// Output: ./app.min.css & ./app.min.js
$output = $minifier->minify()->output('./', 'app.min');

// Working with Css only
$output = $minifier->minifyCss()->outputCss('./app.min.css');

// Working with Js only
$output = $minifier->minifyJs()->outputJs('./app.min.js');

License

Released under the MIT license

Thanks