| Install | |
|---|---|
composer require arjanschouten/htmlminifier |
|
| Latest Version: | 0.0.2 |
| PHP: | >=5.6 |
This package is still in Beta version! Use it with care!
Let composer do the hard work for us!
composer require arjanschouten/htmlminifier
A Laravel package based on this minifier can be installed by running:
composer require arjanschouten/laravelhtmlminifier
If you're not using a php framework you can use the minifier by using the code below:
//include the composer autoloader
require __DIR__ . '/vendor/autoload.php';
// create a minify context which will be used through the minification process
$context = new MinifyContext(new PlaceholderContainer());
// save the html contents in the context
$context->setContents('<html>My html...</html>');
$minify = new Minify();
// start the process and give the context with it as parameter
$context = $minify->run($context);
// $context now contains the minified version
$minifiedContents = $context->getContents();
This minifier have some minification options which are:
| Minification strategy | Option Name | Enabled by default |
|---|---|---|
| Remove redundant whitespaces | whitespaces | yes |
| Remove comments | comments | yes |
| Collapse boolean attributes from checked="checked" to checked | boolean-attributes | yes |
| Remove quotes around html attributes | remove-attributequotes | no |
| Remove optional elements which can be implied by the browser | optional-elements | no |
Remove defaults such as from <script type=text/javascript> |
remove-defaults | no |
| Remove empty attributes. HTML boolean attributes are skipped | remove-empty-attributes | no |
You can enable the various minification options for example with:
...
$options = [
'whitespace' => false,
'remove-defaults' => true,
];
$minify->run($context, $options);
This will disable whitespace and enables remove-defaults.
Contributions are welcome. Please read the CONTRIBUTING.md readme.
HtmlMinifier uses phpunit for testing. You can run the tests with vendor/bin/phpunit .
This package is licensed under the MIT License.
This package is created and maintained by Arjan Schouten.