Сжиматель html-кода

Данный компонент позволяет сжимать HTML-код на лету. При этом есть возможность не сжимать содержимое тегов script и code.

Установка

Самый удобный способ установки - это через composer. Надо выполнить в консоли в директории вашего приложения

php composer.phar require --prefer-dist zabachok/yii2-htmlcompressor "*"

или добавить

"zabachok/yii2-htmlcompressor": "*"

в раздел "require" вашего composer.json и выполнить composer update.

Использование

Вы можете выбрать один из удобных для вас способов.

Переопределение компонента View

В вашем файле конфигурации, в разделе `components`:

'view' => [
	'class' => '\zabachok\htmlcompressor\View',
	'compress' => YII_ENV_DEV ? false : true,
	'compressCode' => false,
	'compressScript' => false
],

Через событие

В вашем файле конфигурации, в разделе `components`:

'response' => [
	'on beforeSend' => function ($event)
	{
		/** @var $event yii\base\ViewEvent */
		$response = $event->sender;
		$compressor = new \zabachok\htmlcompressor\HtmlCompressor(false, false);
		$response->data = $compressor->make($response->data);
	},
],

Через поведение

Если у вас есть свой компонент View, то вы можете сжимать код через поведение.

class View extends \yii\web\View
{
	public function behaviors()
	{
		return [
			[
				'class' => HtmlCompressorBehavior::className(),
				'compress' => true,
				'compressScript' => true,
				'compressCode' => true,
			],
		];
	}
	...
}

Без Yii2

Если вы хотите использовать этот компонент отдельно от Yii2.

$compressor = new zabachok\htmlcompressor\HtmlCompressor();
$result = $compressor->make($html);