Menghapus spasi, menghapus komentar, menggabungkan file (termasuk pernyataan @import
dan aset kecil dalam file CSS), dan mengoptimalkan/memperpendek beberapa pola pemrograman umum, seperti:
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 {}
-> dihapus
Dan itu dilengkapi dengan rangkaian pengujian yang besar.
gunakan MatthiasMullieMinify;$sourcePath = '/path/to/source/css/file.css';$minifier = new MinifyCSS($sourcePath);// kita bahkan dapat menambahkan file lain, mereka kemudian akan // bergabung dalam 1 output file$sourcePath2 = '/path/to/second/source/css/file.css';$minifier->add($sourcePath2);// atau kita bisa saja tambahkan CSS$css = 'body { color: #000000; }';$minifier->add($css);// simpan file yang diperkecil ke disk$minifiedPath = '/path/to/minified/css/file.css';$minifier->minify($minifiedPath);// atau cukup keluarkan contentecho $minifier->minify();
// lihat saja contoh CSSnya; sama persis, tapi dengan kelas JS & file JS :)
Metode yang tersedia, untuk minifier CSS & JS, adalah:
Konstruktor objek menerima 0, 1 atau beberapa jalur file, atau bahkan konten CSS/JS lengkap, yang harus diperkecil. Semua CSS/JS yang diteruskan, akan digabungkan menjadi 1 file yang diperkecil.
gunakan MatthiasMullieMinify;$minifier = new MinifyJS($path1, $path2);
Ini kira-kira setara dengan konstruktor.
$minifier->add($path3);$minifier->add($js);
Ini akan memperkecil konten file, menyimpan hasilnya ke $path dan mengembalikan konten yang dihasilkan. Jika parameter $path dihilangkan, hasilnya tidak akan ditulis di mana pun.
PERHATIAN: Jika Anda memiliki CSS dengan jalur relatif (untuk mengimpor, gambar, ...), Anda harus selalu menentukan jalur target! Kemudian jalur relatif tersebut akan disesuaikan dengan jalur baru.
$minifier->minify('/target/path.js');
Memperkecil dan secara opsional menyimpan ke file, seperti minify()
, tetapi gzencode()
juga merupakan konten yang diperkecil.
$minifier->gzip('/target/path.js');
Pengecil CSS akan secara otomatis menyematkan file yang direferensikan (seperti gambar, font, ...) ke dalam CSS yang diperkecil, sehingga tidak perlu diambil melalui beberapa koneksi.
Namun, untuk file yang sangat besar, mungkin lebih baik memuatnya secara terpisah (karena akan menambah waktu buka CSS jika disertakan.)
Metode ini memungkinkan ukuran maksimal file yang akan diimpor ke CSS yang diperkecil diatur (dalam kB). Ukuran defaultnya adalah 5.
$minifier->setMaxImportSize(10);
Minifier CSS akan secara otomatis menyematkan file yang direferensikan (seperti gambar, font, ...) ke dalam CSS yang diperkecil, sehingga tidak perlu diambil melalui beberapa koneksi.
Metode ini memungkinkan jenis file ditentukan, beserta datanya: tipe mime.
Jenis file bawaan yang disematkan adalah gif, png, jpg, jpeg, svg, apng, avif, webp, woff, dan woff2.
$ekstensi = array('gif' => 'data:gambar/gif','png' => 'data:gambar/png', );$minifier->setImportExtensions($ekstensi);
Cukup tambahkan ketergantungan pada matthiasmullie/minify
ke file composer.json Anda jika Anda menggunakan Komposer untuk mengelola ketergantungan proyek Anda:
komposer membutuhkan matthiasmullie/minify
Meskipun disarankan untuk menggunakan Komposer, Anda sebenarnya dapat memasukkan file-file ini sesuka Anda.
Minify berlisensi MIT.