Supprime les espaces, supprime les commentaires, combine les fichiers (y compris les instructions @import
et les petits éléments dans les fichiers CSS) et optimise/raccourcit quelques modèles de programmation courants, tels que :
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 {}
-> supprimé
Et il est livré avec une énorme suite de tests.
use MatthiasMullieMinify;$sourcePath = '/path/to/source/css/file.css';$minifier = new MinifyCSS($sourcePath);// on peut même ajouter un autre fichier, ils seront alors// joints en 1 fichier de sortie$sourcePath2 = '/path/to/second/source/css/file.css';$minifier->add($sourcePath2);// ou nous pouvons simplement ajouter du CSS$css = 'body { color: #000000; }';$minifier->add($css);// enregistrer le fichier minifié sur le disque$minifiedPath = '/path/to/minified/css/file.css';$minifier->minify($minifiedPath);// ou affichez simplement le contentecho $minifier->minify();
// il suffit de regarder l'exemple CSS ; c'est exactement pareil, mais avec la classe JS & les fichiers JS :)
Les méthodes disponibles, pour le minificateur CSS et JS, sont :
Le constructeur d'objet accepte 0, 1 ou plusieurs chemins de fichiers, ou même du contenu CSS/JS complet, qui doit être minifié. Tous les CSS/JS transmis seront combinés en un seul fichier minifié.
utilisez MatthiasMullieMinify;$minifier = new MinifyJS($path1, $path2);
C'est à peu près équivalent au constructeur.
$minifier->ajouter($path3);$minifier->ajouter($js);
Cela réduira le contenu des fichiers, enregistrera le résultat dans $path et renverra le contenu résultant. Si le paramètre $path est omis, le résultat ne sera écrit nulle part.
ATTENTION : Si vous avez du CSS avec des chemins relatifs (vers les importations, les images, ...), vous devez toujours spécifier un chemin cible ! Ensuite, ces chemins relatifs seront ajustés conformément au nouveau chemin.
$minifier->minify('/target/path.js');
Réduit et éventuellement enregistre dans un fichier, tout comme minify()
, mais gzencode()
représente également le contenu minifié.
$minifier->gzip('/target/path.js');
Le minificateur CSS intégrera automatiquement les fichiers référencés (comme les images, les polices, ...) dans le CSS minifié, afin qu'ils n'aient pas besoin d'être récupérés sur plusieurs connexions.
Cependant, pour les fichiers très volumineux, il est probablement préférable de les charger séparément (car cela augmenterait le temps de chargement CSS s'ils étaient inclus.)
Cette méthode permet de définir la taille maximale des fichiers à importer dans le CSS minifié (en Ko). La taille par défaut est 5.
$minifier->setMaxImportSize(10);
Le minificateur CSS intégrera automatiquement les fichiers référencés (comme les images, les polices, ...) dans le CSS minifié, afin qu'ils n'aient pas besoin d'être récupérés sur plusieurs connexions.
Cette méthode permet de spécifier le type de fichiers, ainsi que leur type data:mime.
Les types de fichiers intégrés par défaut sont gif, png, jpg, jpeg, svg, apng, avif, webp, woff et woff2.
$extensions = array('gif' => 'data:image/gif','png' => 'data:image/png', );$minifier->setImportExtensions($extensions);
Ajoutez simplement une dépendance sur matthiasmullie/minify
à votre fichier composer.json si vous utilisez Composer pour gérer les dépendances de votre projet :
le compositeur nécessite matthiasmullie/minify
Bien qu'il soit recommandé d'utiliser Composer, vous pouvez en fait inclure ces fichiers comme vous le souhaitez.
Minify est sous licence MIT.