ArjanSchouten / HtmlMinifier by ArjanSchouten

PHP based Html minifier with support for Laravel/Lumen. This minifier will improve you're application size drastically!
921
22
6
Package Data
Maintainer Username: ArjanSchouten
Maintainer Contact: mail@arjan-schouten.nl (Arjan Schouten)
Package Create Date: 2015-05-29
Package Last Update: 2017-10-06
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-04-14 15:08:00
Package Statistics
Total Downloads: 921
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 22
Total Watchers: 6
Total Forks: 1
Total Open Issues: 3

This package is still in Beta version! Use it with care!

HtmlMinifier

Build Status Scrutinizer Code Quality Code Coverage

Installation

Let composer do the hard work for us!

composer require arjanschouten/htmlminifier

Laravel 5.*

A Laravel package based on this minifier can be installed by running:

composer require arjanschouten/laravelhtmlminifier

Plain php projects with composer

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();

Options

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.

Contributing

Contributions are welcome. Please read the CONTRIBUTING.md readme.

Testing

HtmlMinifier uses phpunit for testing. You can run the tests with vendor/bin/phpunit .

License

This package is licensed under the MIT License.

Creator and Maintainer

This package is created and maintained by Arjan Schouten.