Удаляет пробелы, удаляет комментарии, объединяет файлы (включая операторы @import и небольшие ресурсы в файлах CSS), а также оптимизирует/сокращает некоторые распространенные шаблоны программирования, такие как:
JavaScript
object['property'] -> object.property
true , false -> !0 , !1
while(true) -> for(;;)
CSS
@import url("http://path") -> @import "http://path"
#ff0000 , #ff00ff -> red , #f0f
-0px , 50.00px -> 0 , 50px
bold -> 700
p {} -> удалено
И он поставляется с огромным набором тестов.
используйте MatthiasMullieMinify;$sourcePath = '/path/to/source/css/file.css';$minifier = new MinifyCSS($sourcePath);// мы можем даже добавить еще один файл, тогда они // объединятся в 1 выходной файл$sourcePath2 = '/путь/к/секунде/источник/css/file.css';$minifier->add($sourcePath2);// или мы можем просто добавить простой CSS$css = 'body {color: #000000; }';$minifier->add($css);// сохраняем минифицированный файл на диск$minifiedPath = '/path/to/minified/css/file.css';$minifier->minify($minifiedPath);// или просто выведите contentecho $minifier->minify();// просто посмотрите на пример CSS; это точно то же самое, но с классом JS и файлами JS :)
Доступные методы для минификатора CSS и JS:
Конструктор объекта принимает 0, 1 или несколько путей к файлам или даже полное содержимое CSS/JS, которое должно быть минимизировано. Все переданные CSS/JS будут объединены в один мини-файл.
используйте MatthiasMullieMinify;$minifier = новый MinifyJS($path1, $path2);
Это примерно эквивалентно конструктору.
$minifier->add($path3);$minifier->add($js);
Это позволит минимизировать содержимое файлов, сохранить результат в $path и вернуть полученное содержимое. Если параметр $path опущен, результат никуда не запишется.
ВНИМАНИЕ. Если у вас есть CSS с относительными путями (к импорту, изображениям и т. д.), вам всегда следует указывать целевой путь! Затем эти относительные пути будут скорректированы в соответствии с новым путем.
$minifier->minify('/target/path.js'); Минимизирует и, при необходимости, сохраняет в файл, как и minify() , но gzencode() также сохраняет минимизированное содержимое.
$minifier->gzip('/target/path.js');Минификатор CSS автоматически встраивает файлы, на которые имеются ссылки (например, изображения, шрифты и т. д.) в минифицированный CSS, поэтому их не нужно получать по нескольким соединениям.
Однако для действительно больших файлов, вероятно, лучше загружать их отдельно (так как если бы они были включены, это увеличило бы время загрузки CSS).
Этот метод позволяет установить максимальный размер файлов для импорта в минифицированный CSS (в КБ). Размер по умолчанию — 5.
$minifier->setMaxImportSize(10);
Минификатор CSS автоматически встраивает файлы, на которые имеются ссылки (например, изображения, шрифты и т. д.), в минимизированный CSS, поэтому их не нужно получать по нескольким соединениям.
Этот метод позволяет указать тип файлов, а также их тип data:mime.
Типы встроенных файлов по умолчанию: gif, png, jpg, jpeg, svg, apng, avif, webp, woff и woff2.
$extensions = array('gif' => 'data:image/gif','png' => 'data:image/png',
);$minifier->setImportExtensions($extensions); Просто добавьте зависимость от matthiasmullie/minify в файл композитора.json, если вы используете Composer для управления зависимостями вашего проекта:
композитору требуется matthiasmullie/minify
Хотя рекомендуется использовать Composer, вы можете включать эти файлы по своему усмотрению.
Minify имеет лицензию MIT.