ลบช่องว่าง ตัดความคิดเห็น รวมไฟล์ (รวมถึงคำสั่ง @import
และเนื้อหาขนาดเล็กในไฟล์ CSS) และปรับให้เหมาะสม/ย่อรูปแบบการเขียนโปรแกรมทั่วไปบางอย่าง เช่น:
จาวาสคริปต์
object['property']
-> object.property
true
, false
-> !0
, !1
while(true)
-> for(;;)
ซีเอสเอส
@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 = '/path/to/second/source/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 class & JS :)
วิธีการที่ใช้ได้สำหรับทั้งตัวย่อ CSS และ JS คือ:
ตัวสร้างวัตถุยอมรับ 0, 1 หรือหลายเส้นทางของไฟล์ หรือแม้แต่เนื้อหา CSS/JS ที่สมบูรณ์ที่ควรถูกย่อให้เล็กลง CSS/JS ทั้งหมดที่ส่งผ่านจะถูกรวมเป็นไฟล์ย่อขนาด 1 ไฟล์
ใช้ MatthiasMullieMinify;$minifier = new MinifyJS($path1, $path2);
นี่เทียบเท่ากับตัวสร้างโดยประมาณ
$minifier->เพิ่ม($path3);$minifier->เพิ่ม($js);
วิธีนี้จะย่อขนาดเนื้อหาของไฟล์ บันทึกผลลัพธ์ไปที่ $path และส่งคืนเนื้อหาผลลัพธ์ หากละเว้นพารามิเตอร์ $path ผลลัพธ์จะไม่ถูกเขียนไว้ที่ใดเลย
ข้อควรระวัง: หากคุณมี CSS ที่มีเส้นทางสัมพันธ์กัน (เพื่อนำเข้า, รูปภาพ, ...) คุณควรระบุเส้นทางเป้าหมายเสมอ! จากนั้นเส้นทางสัมพัทธ์เหล่านั้นจะถูกปรับให้สอดคล้องกับเส้นทางใหม่
$minifier->ย่อขนาด('/target/path.js');
ย่อขนาดและเลือกบันทึกลงในไฟล์ เช่นเดียวกับ minify()
แต่ gzencode()
ยังเป็นเนื้อหาที่ย่อเล็กสุดด้วย
$minifier->gzip('/target/path.js');
ตัวย่อ CSS จะฝังไฟล์อ้างอิง (เช่น รูปภาพ แบบอักษร ...) ลงใน CSS แบบย่อโดยอัตโนมัติ ดังนั้นจึงไม่จำเป็นต้องดึงข้อมูลผ่านการเชื่อมต่อหลาย ๆ อัน
อย่างไรก็ตาม สำหรับไฟล์ที่มีขนาดใหญ่มาก ควรโหลดแยกกันจะดีกว่า (เนื่องจากจะเพิ่มเวลาในการโหลด CSS หากรวมไว้ด้วย)
วิธีการนี้อนุญาตให้ตั้งค่าขนาดสูงสุดของไฟล์ที่จะนำเข้าไปยัง CSS ที่ย่อขนาดได้ (เป็น kB) ขนาดเริ่มต้นคือ 5
$minifier->setMaxImportSize(10);
ตัวย่อ CSS จะฝังไฟล์อ้างอิง (เช่น รูปภาพ แบบอักษร ...) ลงใน CSS แบบย่อโดยอัตโนมัติ ดังนั้นจึงไม่จำเป็นต้องดึงข้อมูลผ่านการเชื่อมต่อหลาย ๆ อัน
เมธอดนี้อนุญาตให้ระบุประเภทของไฟล์พร้อมกับ data:mime type
ประเภทไฟล์ที่ฝังเริ่มต้นคือ gif, PNG, jpg, jpeg, svg, apng, avif, webp, woff และ woff2
$extensions = array('gif' => 'data:image/gif','png' => 'data:image/png', );$minifier->setImportExtensions($ส่วนขยาย);
เพียงเพิ่มการขึ้นต่อกันของ matthiasmullie/minify
ให้กับไฟล์ composer.json ของคุณ หากคุณใช้ Composer เพื่อจัดการการขึ้นต่อกันของโปรเจ็กต์ของคุณ:
ผู้แต่งต้องการ matthiasmullie/minify
แม้ว่าเราจะแนะนำให้ใช้ Composer แต่จริงๆ แล้วคุณสามารถรวมไฟล์เหล่านี้ไว้ตามที่คุณต้องการได้
Minify ได้รับอนุญาตจาก MIT