مرحبا بالجميع.
أنا (نحن كشركة) ننهي المنصة من المورد ، والمنصة هي مكون إضافي لبرنامج WordPress. أنا على دراية بالواجهة الأمامية ، JS ، HTML فقط طالما أن الحلول المذكورة أعلاه قد لا تكون مألوفة ، ولكن جوهر المقالة ليس كذلك .
خلاصة القول هي أن نوضح بوضوح لماذا في بعض الأحيان بدلاً من سطرين من التعليمات البرمجية ، سيكون القرار الصحيح لكتابة مائتي.
بداية المطورين والمطورين ذوي الخبرة الذين يبدو مثل هذا الفكر مشكوكًا فيه ، أطلب تحت قطة.
مقدمة
قراءة المقال دون قراءة التعليقات في الكود لا معنى لها ، لأن التعليقات في الكود لا تتكرر في نص المقال ونص المقال يعني أن القارئ قد قرأ التعليقات.
التحدي
كان من الضروري إجراء تغييرات على JS ، أقوم بإجراء التغييرات في ملفات منفصلة ، بحيث "تلوث" أقل قدر ممكن من الكود المصدري لمزود النظام الأساسي ، لذلك سيكون من الأسهل في المستقبل تكييف تحديثات مصدر النظام الأساسي.
وفقًا لذلك ، يكون رمز الوظيفة الجديدة في ملفات جديدة تحتاج إلى تحميلها على الصفحة.
المهمة: يجب تحميل ملفات معينة عند تحميل الصفحة.
فطيرة الأولى هي العقدي
+<script src="e-cryptex.js"></script> +<script src="wp-content/themes/tol-child/js/child_realforex.js"></script>
(الأسطر بعلامة "+" هي سطور جديدة في الكود المصدري)
تم اختبار الحل للصفحة الرئيسية وقد نجح هناك ، فيما بعد تبين أنه بالنسبة للصفحات ذات عنوان example.com/about ، لم ينجح الحل ، لأن المتصفح كان يحاول تحميل example.com/about/e-cryptex.js وتلقى المستعرض خطأ 404 ، لأن الملف كان موجودًا بالفعل في الجذر - example.com/e-cryptex.js.
الخيار الثاني
نظرت إلى كيفية تمسك مطوري النظام الأساسي بالصفحة:
wp_register_script(FILE-ID,FILE-PATH); wp_enqueue_script(FILE-ID);
يتم إرفاق الملفات باستخدام وظيفة WordPress - حسنًا ، دعنا نفعل الشيء نفسه:
(الأسطر التي بها "+" هي سطور جديدة في الكود المصدري ، الأسطر بعلامة "-" هي سطور محذوفة من الكود المصدري).
فحص - يعمل ، تقريبا.
كان هناك سطرين - أصبح 12 ، كل ذلك ضمن نفس الملف.
إعادة بيع
نظرت إلى هذا الرمز ، وتمرد شعوري بالجمال:
- لن يفهم أي شخص غير معتاد على WordPress أي شيء - يجب عليك الذهاب إلى الدليل لفهم الغرض من وظائف wp_register_script () و wp_enqueue_script ()
- من الواضح أن الشيء نفسه يتم مرتين في صف واحد ، والحجج مختلفة فقط - تم انتهاك DRY
حسنا ، ريفاكتور.
أولاً ، نحن نصنع فصلًا (ملفًا واحدًا) ، وثانياً ، نقوم بتوصيل واستخدام الفصل (نغير ملفًا آخر).
جعل الصف
+class Migesco { + + const SCRIPT = 'script'; + const SOURCE = 'source'; + const DEPENDENCY = 'dependency'; +
نحن الاتصال والاستخدام
<?php
كان هناك 12 سطرًا من أكواد المصدر في ملف واحد ، وكان هناك 35 سطرًا ، واثنتان منها (ادعمه لاحقًا ، ابحث عن جذوع يمكن إصلاحها في مكان آخر ، حتى لا تنسى أي شيء ، ولا تفوت ، ولا تفوت).
وإعادة بيعها مرة أخرى
نظرت إلى الكود الجديد:
- بعض الأساليب الساكنة
- بعض الثوابت ...
يبدو أخرق! أذكر النصيحة التالية: "إذا كان المنشئ ليس لديه حجج ، فهل هذه الفئة ضرورية؟"
دعنا نعيد صنع ، ولكن فئة طبيعية ، مع منشئ وطرق طبيعية.
الطبقة
استخدام
<?php
يمكنك إجراء إعادة التجهيز مرة أخرى (تعمل المنصة على PHP 5.6 - أحب تعيين الأنواع في كل مكان ، لكن للأسف لا يمكنك ذلك ، يمكنك جعل فئة Configurator الثابتة أكثر إنسانية ، على سبيل المثال ، التهيئة من قائمة الملفات - موارد الويب وطريقة attachFiles ثابت) ، ولكن الأشياء المثالية لعالم مثالي ، نحن نعيش في الواقع ، وهو يجعل تصحيحاته - الوقت الذي يقضيه في المهمة - يتم إيقاف العمل في المهمة.
المجموع: كان هناك 35 سطور في المصدر في ملفين ، وأصبحت ~ 170 ، وكذلك في ملفين.
ماذا حصلنا عليه؟
- الآن لست مضطرًا للذهاب إلى مساعدة WordPress لفهم الغرض من معلمات "الوظائف".
- الآن لدينا برنامج تجميع لربط الملفات ويمكننا تغيير خوارزمية توصيل الملفات دون ألم - لن يتعين علينا تحرير جميع المكالمات إلى wp_register_script و wp_enqueue_script
- الآن يمكننا تغيير WordPress إلى أي شيء ، فقط الصف سيضطر إلى إعادة الكتابة
المسجل ، لا حاجة لاستبدال جميع مكالمات wp_register_script و wp_enqueue_script واتبع منطق WordPress.
هل كان يستحق كل هذا العناء؟
لكل منها منهجها الخاص لدعم قاعدة الكود والرأي الخاص بها.
جوابي نعم.