معايير الترميز: شيء يجب شمه
نشرت: 2021-07-19كانت بعض الأسئلة مطروحة ما دامت تطوير البرمجيات. هل يجب أن أضع مسافة بادئة بعلامات جدولة أو مسافات؟ هل معايير الترميز مهمة حقًا؟ هل يجب علي حقًا إضاعة الوقت في اتباع بعض القواعد التعسفية؟
على التوالي ، الإجابات على هذه الأسئلة هي: علامات التبويب (من الواضح) ، نعم (أقل وضوحًا) ولا (نوعًا ما).

تمت تغطية أهمية المعايير من قبل الآخرين بشكل مطول ، لذلك لن أخوض في التفاصيل هنا ، ولكن جوهرها هو: الاتساق الداخلي مرغوب فيه داخل مشروع معين لأنه يحسن إمكانية القراءة ، ويحد من المفاجآت ، ويمكن أن يساهم في متانة الشفرة.
لا تحتاج إلى "إضاعة الوقت" في الالتزام بالمعايير لأن هناك طرقًا لتطبيق تلك المعايير تلقائيًا!
ما سأغطيه هنا هو وسيلة لإعداد الأداة المستقلة PHP Codesniffer (PHPCS) لمشاريع WordPress بسرعة وسهولة . سيمكنك هذا من:
- قم بإعداد تقرير عن الامتثال للمعايير في التعليمات البرمجية الخاصة بك
- حل مجموعة متنوعة من مشكلات الامتثال تلقائيًا
سنقوم بتنفيذ معايير WordPress في الأمثلة التالية.
التثبيت
المتطلبات الأساسية:
- الوصول إلى المحطة الطرفية (قد ينجح مستخدمو Windows مع Bash لنظام التشغيل Windows ولكن هذا لم يتم اختباره)
- مدير حزم الملحن
في حين أنه من الممكن تثبيت PHPCS بنفسه ، إلا أنه لا يدعم WordPress افتراضيًا. لذلك ، سنقوم بتثبيت معايير ترميز WordPress المسمى (WPCS).
أولاً ، انتقل إلى أي مكان تريد تثبيت WPCS للاستخدام العالمي.
$> القرص المضغوط / المسار / إلى / في أي مكان
قم بتثبيت الحزمة مع الملحن.
$> الملحن إنشاء مشروع wp-coding-Standards / wpcs - no-dev
في هذه المرحلة ، يمكننا الغوص والبدء في استخدام WPCS ، ولكن هناك بعض العلامات التي يجب تعيينها في كل مرة نقوم فيها بتشغيل الأمر. لنقم بإعداد بضعة أسماء مستعارة للراحة.
.profile مفتوحة من الدليل الرئيسي في تحرير المفضلة لديك (أو إنشائه إذا لم يكن موجودا) وإضافة ما يلي:
# معايير ترميز WP تصدير PATH = $ PATH: "/ path / to /where / wpcs / vendor / bin" الاسم المستعار wpcs = 'phpcs --standard = WordPress --extensions = php الاسم المستعار wpcbf = 'phpcbf --standard = WordPress --extensions = php
لقد أضفنا هنا اسمين مستعارين - أحدهما لـ phpcs (الذي يبحث عن حالات فشل الامتثال ويعرضها) والآخر لـ phpcbf (الذي يعمل تلقائيًا على إصلاح العديد من المشكلات التي وجدتها phpcs). تقوم الخيارات الإضافية بما يلي:
–standard = WordPress - يطبق معايير WordPress (المحددة في WPCS)
–extensions = php - استهداف ملفات PHP فقط (تستهدف PHPCS PHP و CSS و JS افتراضيًا)
أعد تشغيل Terminal (أو source .profile ) و WPCS جاهز لاستنشاق الكود الخاص بك!
شم
لإنتاج تقرير شم عن ملف ، قم بتشغيل ما يلي:
$> wpcs /path/to/your/php/project/file.phpسيؤدي هذا إلى إخراج التقرير في المحطة. بدلاً من ذلك ، يمكنك إخراج هذا إلى ملف:
$> wpcs /path/to/your/php/project/file.php> output.txt
تقرير شم
سيكون إخراج شم WPCS الخاص بك شيئًا كالتالي:


هناك قدر لا بأس به من المعلومات معبأة هنا ، لكنها معروضة بشكل جيد. لنراجع ما لدينا:
- الملف المستهدف
- ملخص لعدد الأخطاء / التحذيرات التي تم العثور عليها وعدد الخطوط المتأثرة
- قائمة بالمشكلات التي تم العثور عليها ، مع مستويات الخطورة والأوصاف
- إشارة إلى عدد المشكلات التي يمكن لـ phpcbf حلها تلقائيًا (بشكل أساسي جميع المشكلات مع [x])
كما هو متوقع ، لا يمكن لـ PHPCS أن تأخذ في الحسبان كل شيء. لن يضع افتراضات حول اختيار علامات الترقيم في التعليقات وأنواع معينة من تنسيق التعليمات البرمجية ، ولكنه يمكنه التعامل مع مجموعة متنوعة من المشكلات نيابةً عنك.
من المزايا الرائعة أن قواعد WordPress تسمح لـ PHPCS باكتشاف المشكلات الخاصة بـ WordPress ، بما في ذلك إساءة استخدام الوظائف المحتملة.
اصلاح
لا يمكن أن يكون حل المشكلات تلقائيًا أسهل:
$> wpcbf /path/to/your/php/project/file.php
يتم إخراج ملخص قصير:

ستحتاج إلى إصلاح أي أخطاء متبقية يدويًا ، ولكنك ستجد عادةً أنه تم التعامل مع جزء كبير من المشكلات.
القواعد المخصصة
قد ترغب أيضًا في تخصيص مجموعة القواعد واستبعاد أدلة معينة في مشروعك وما إلى ذلك. وPHPCS المشروح مستندات مجموعة الأوامر أمثلة من كل التغييرات التي يمكن أن تجعل، ولكن بشكل عام كنت للتو:
- قم بإنشاء ملف مجموعة القواعد
- قم بالإشارة إليه في أمر PHPCS
فيما يلي مثال على ملف مجموعة القواعد:
<؟ xml version = "1.0"؟>
<ruleset name = "WordPress Coding Standards">
<description> معايير WordPress المخصصة. </ الوصف>
<rule ref = "WordPress">
<استبعاد الاسم = "Generic.Formatting.MultipleStatementAlignment.NotSameWarning" />
</rule>
<exclude-pattern> * / bin / * </exclude-pattern>
<exclude-pattern> * / node_modules / * </exclude-pattern>
<exclude-pattern> * / tests / * </exclude-pattern>
</ruleset>في المثال قمنا بما يلي:
- تمت الإشارة إلى مجموعة قواعد WordPress (من WPCS)
- استبعاد قاعدة
- تم استبعاد بعض الدلائل
يمكن وضع ملف مجموعة القواعد في أي دليل تقوم باستدعاء WPCS منه (عادةً ما يكون المشروع أو السمة أو جذر المكون الإضافي معقولًا) والإشارة إليه عبر علامة. قم بتحديث علامة –standard في ملفك الشخصي ، مثل:
# معايير ترميز WP تصدير PATH = $ PATH: "/ path / to /where / wpcs / vendor / bin" الاسم المستعار wpcs = 'phpcs --standard = codeniffer.ruleset.xml --extensions = php الاسم المستعار wpcbf = 'phpcbf --standard = codesniffer.ruleset.xml --extensions = php
للتحقق من القواعد التي يتم وضع علامة عليها عند تشغيل WPCS ، ما عليك سوى تشغيلها بعلامة -s كما يلي:
$> wpcs -s /path/to/your/php/project/file.php
ماذا بعد؟
سيمكنك الدليل أعلاه من إجراء فحوصات الامتثال للمعايير المخصصة في مشروع WordPress الخاص بك ، ولكن إذا كنت ترغب في دمجها في دورة التطوير القياسية الخاصة بك ، فإن الخطوة المنطقية التالية هي الأتمتة.
ضع في اعتبارك دمج PHPCS في أداة تشغيل المهام مثل gulp أو grunt (تتوفر وحدات PHPCS لكليهما) ، أو دمجها في خط أنابيب إنشاء CI / CD.
للمساعدة في تطوير وتصميم الويب ، تواصل معنا اليوم.
إذا كنت بحاجة إلى مساعدة بشأنك فلا تتردد في الاتصال بنا.
