Coding Conventions

PHP

  • المعيار: نمط ترميز PSR-12

  • إعلانات الأنواع: استخدم إعلانات الأنواع في PHP 8.2 (أنواع المعاملات، أنواع الإرجاع، أنواع الخصائص)

  • الأنواع الصارمة: يجب أن تعلن جميع ملفات PHP strict_types=1

  • المساحات الاسمية: اتبع التحميل التلقائي PSR-4 (مثال: Chamilo\CoreBundle\Entity\User)

  • معايير Symfony: اتبع معايير الترميز وأفضل الممارسات في Symfony

JavaScript/Vue

  • ESLint + Prettier: يتم فحص الشفرة باستخدام ESLint وتنسيقها باستخدام Prettier؛ الإعدادات موجودة في eslint.config.mjs في جذر المشروع. كما يتم تمكين prettier-plugin-tailwindcss لترتيب فئات Tailwind تلقائيًا.

  • واجهة البرمجة التكوينية: استخدم بنية <script setup> في Vue 3 للمكونات الجديدة

  • TypeScript: يتم دعم TypeScript؛ استخدمه للشفرة الآمنة من حيث الأنواع

CSS

  • Tailwind CSS: فضّل فئات المرافق على CSS المخصص

  • تسمية BEM: عند الحاجة إلى CSS مخصص، استخدم اتفاقية تسمية BEM

  • SCSS: استخدم SCSS لأوراق الأنماط المعقدة

أدوات التحليل الثابت وإعادة الهيكلة لـ PHP

يأتي المشروع مع إعدادات لثلاث أدوات إضافية:

Tool
Config file
Purpose

PHPStan

phpstan.neon

التحليل الثابت (المستوى 5، يفحص src/ ومجلدات الاختبار)

Psalm

psalm.xml

جولة ثانية من التحليل الثابت؛ تعمل في CI عند كل دفع

Rector

rector.php

تحويلات الشفرة التلقائية والترقيات

شغّلها عبر اختصارات composer: composer phpstan، composer psalm. انظر Testing للحصول على الأوامر الكاملة.

عام

  • الإنجليزية: يجب أن تكون جميع تعليقات الشفرة، وأسماء المتغيرات، والوثائق باللغة الإنجليزية

  • الترجمات: يجب أن تستخدم جميع النصوص المواجهة للمستخدم نظام الترجمة (Vue I18n للواجهة الأمامية، Symfony Translator للواجهة الخلفية)

  • لا قيم سحرية: استخدم الثوابت أو التعدادات بدلاً من القيم المبرمجة مسبقًا

آخر تحديث

هل كان هذا مفيدا؟