Entfernt Leerzeichen, entfernt Kommentare, kombiniert Dateien (einschließlich @import
-Anweisungen und kleine Assets in CSS-Dateien) und optimiert/kürzt einige gängige Programmiermuster, wie zum Beispiel:
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 {}
-> entfernt
Und es kommt mit einer riesigen Testsuite.
use MatthiasMullieMinify;$sourcePath = '/path/to/source/css/file.css';$minifier = new MinifyCSS($sourcePath);// wir können sogar eine weitere Datei hinzufügen, sie werden dann// in 1 zusammengefügt Ausgabedatei$sourcePath2 = '/path/to/second/source/css/file.css';$minifier->add($sourcePath2);// oder wir können einfach einfach hinzufügen CSS$css = 'body { color: #000000; }';$minifier->add($css);// minimierte Datei auf Festplatte speichern$minifiedPath = '/path/to/minified/css/file.css';$minifier->minify($minifiedPath);// oder geben Sie einfach den Inhalt aus: $minifier->minify();
// Schauen Sie sich einfach das CSS-Beispiel an; Es ist genau das Gleiche, aber mit der JS-Klasse und den JS-Dateien :)
Verfügbare Methoden für CSS- und JS-Minifier sind:
Der Objektkonstruktor akzeptiert 0, 1 oder mehrere Pfade von Dateien oder sogar vollständigen CSS/JS-Inhalten, die minimiert werden sollten. Das gesamte weitergegebene CSS/JS wird in einer minimierten Datei zusammengefasst.
use MatthiasMullieMinify;$minifier = new MinifyJS($path1, $path2);
Dies entspricht in etwa dem Konstruktor.
$minifier->add($path3);$minifier->add($js);
Dadurch wird der Inhalt der Dateien minimiert, das Ergebnis in $path gespeichert und der resultierende Inhalt zurückgegeben. Wenn der Parameter $path weggelassen wird, wird das Ergebnis nirgendwo geschrieben.
ACHTUNG: Wenn Sie CSS mit relativen Pfaden (zu Importen, Bildern, ...) haben, sollten Sie immer einen Zielpfad angeben! Anschließend werden diese relativen Pfade entsprechend dem neuen Pfad angepasst.
$minifier->minify('/target/path.js');
Minimiert und optional in einer Datei speichert, genau wie minify()
, aber gzencode()
ist auch der minimierte Inhalt.
$minifier->gzip('/target/path.js');
Der CSS-Minifier bettet referenzierte Dateien (wie Bilder, Schriftarten usw.) automatisch in das minimierte CSS ein, sodass sie nicht über mehrere Verbindungen abgerufen werden müssen.
Bei wirklich großen Dateien ist es jedoch wahrscheinlich besser, sie separat zu laden (da sich die CSS-Ladezeit verlängern würde, wenn sie enthalten wären).
Mit dieser Methode kann die maximale Größe der in das minimierte CSS zu importierenden Dateien festgelegt werden (in kB). Die Standardgröße ist 5.
$minifier->setMaxImportSize(10);
Der CSS-Minifier bettet referenzierte Dateien (wie Bilder, Schriftarten usw.) automatisch in minimiertes CSS ein, sodass sie nicht über mehrere Verbindungen abgerufen werden müssen.
Diese Methode ermöglicht die Angabe des Dateityps zusammen mit ihrem data:mime-Typ.
Die standardmäßig eingebetteten Dateitypen sind GIF, PNG, JPG, JPEG, SVG, APNG, Avif, WebP, Woff und Woff2.
$extensions = array('gif' => 'data:image/gif','png' => 'data:image/png', );$minifier->setImportExtensions($extensions);
Fügen Sie Ihrer Composer.json-Datei einfach eine Abhängigkeit von matthiasmullie/minify
hinzu, wenn Sie Composer zum Verwalten der Abhängigkeiten Ihres Projekts verwenden:
Komponist benötigt matthiasmullie/minify
Obwohl die Verwendung von Composer empfohlen wird, können Sie diese Dateien tatsächlich beliebig einbinden.
Minify ist MIT-lizenziert.