An extremely fast PHP based minification library for Javascript, CSS, Html and Json scripts using Regex Parsing
Run the following command to use the library in your projects:
composer require codealfa/minify
You can use any of the minifiers in the following way:
use CodeAlfa\Minify\Js;
$sMinifiedJs = Js::optimize($sOriginalJs);The HTML minifier takes the following options:
cssMinifier(defaultnull): Callback function to minify the contents of in-page<style>elements.jsMinifier(defaultnull): Callback function to minify the contents of in-page<script>elements.jsonMinifier(defaultnull): Callback function to minify the contents of in-page json contents. The Html Minifer will inspect thetypeattribute ofscriptcontents to determine if it's javascript or json.minifyLevel(default0): Determine the minification level of the HTML. Possible values are:0: Runs of whitespace outside elements are reduced to one whitespace, if a line feed is included it will be preserved. (HTML comments are not removed). In-page scripts and styles are minified if callback functions were provided.1: HTML comments are removed, along with whitespaces around block elements. Unnecessary whitespaces inside elements and around attributes are removed.2: Redundant attributes eg.,type="text/javascript"are removed. Quotes are removed from selected attributes if the isHtml5 option is set totrue.
isXhtml(defaultfalse): HTML content treated as XHTML1.0. In-page javascript content with characters that needs escaping in XML will be surrounded by/*<![CDATA[*/and/*]]>*/isHtml5(defaultfalse): If set totruethen whenminifyLevelis set to2, quotes are removed from attibutes if they don't contain characters that necessitates quoting.
Example:
use CodeAlfa\Minify\Html;
$aOptions = array(
'cssMinifier' => array('CodeAlfa\Minify\Css', 'optimize'),
'jsMinifier' => array('CodeAlfa\Minify\Js', 'optimize'),
'minifyLevel' => 2,
'isHtml5' => true
);
$sMinifiedHtml = Html::optimize($sOriginalHtml, $aOptions);GPL-3.0 or later