يزيل المسافات البيضاء، ويزيل التعليقات، ويجمع الملفات (بما في ذلك عبارات @import
والأصول الصغيرة في ملفات CSS)، ويحسن/يختصر بعض أنماط البرمجة الشائعة، مثل:
جافا سكريبت
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 {}
-> تمت إزالته
ويأتي مع مجموعة اختبار ضخمة.
use MatthiasMullieMinify;$sourcePath = '/path/to/source/css/file.css';$minifier = new MinifyCSS($sourcePath);// يمكننا أيضًا إضافة ملف آخر، وسيتم بعد ذلك // ضمهم في 1 ملف الإخراج$sourcePath2 = '/path/to/sec/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 وملفات JS :)
الطرق المتاحة لكل من أداة تصغير CSS وJS هي:
يقبل مُنشئ الكائن 0 أو 1 أو مسارات متعددة للملفات، أو حتى محتوى CSS/JS الكامل، والذي يجب تصغيره. سيتم دمج جميع ملفات CSS/JS التي تم تمريرها في ملف واحد مصغر.
استخدم MatthiasMullieMinify;$minifier = new 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 المصغر، لذلك لا يلزم جلبها عبر اتصالات متعددة.
تسمح هذه الطريقة بتحديد نوع الملفات، بالإضافة إلى بياناتها: نوع 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
إلى ملف Composer.json الخاص بك إذا كنت تستخدم Composer لإدارة تبعيات مشروعك:
يتطلب الملحن matthiasmullie/minify
وعلى الرغم من أنه يوصى باستخدام Composer، إلا أنه يمكنك بالفعل تضمين هذه الملفات بأي طريقة تريدها.
Miniify مرخص من معهد ماساتشوستس للتكنولوجيا.