مواصفات تطوير إضافات التطبيق

متطلبات الإضافات

  • لا يجوز أن تحتوي الإضافة على أي كود أو صورة أو رمز تنتهك حقوق الطبع والنشر
  • يجب أن يكون مصدر الإضافة كوداً كاملاً ولا يجوز تشفيره
  • يجب أن تكون الإضافة مكتملة الوظائف ولا تكون وظيفة بسيطة
  • يجب توفير وثائق كاملة حول الوظائف
  • لا يجوز أن تحتوي الإضافة على أية أقسام فرعية
  • يجب أن لا يحتوي الإضافة داخلياً على أية روابط ترويجية أو نصوص

تعريف الإضافة

كل إضافة للتطبيق لديها تعريف فريد، ويتكون هذا التعريف من مجموعة من الأحرف الأبجدية. هذا التعريف يؤثر على اسم مجلد مصدر الإضافة في التطبيق الرئيسي، وعلى فضاء الأسماء للصنف، وعلى بادئة جداول قاعدة البيانات للإضافة.

على سبيل المثال، إذا كان لدى المطور تعريف "foo" للإضافة، فإن مجلد مصدر الإضافة سيكون {المشروع_الرئيسي}/plugin/foo، وفضاء الأسماء المقابل سيكون plugin\foo، وبادئة جداول قاعدة البيانات ستكون foo_.

نظرًا لكون التعريف فريدًا على الشبكة بأكملها، يجب على المطور التحقق من إمكانية استخدام التعريف قبل البدء في التطوير، وذلك من خلال الرابط التالي فحص التعريف.

قاعدة البيانات

  • يجب أن تتكون أسماء الجداول من حروف صغيرة من الألف إلى الياء وشرطة سفلية _
  • يجب أن تكون جداول بيانات الإضافة مسبوقة بتعريف الإضافة، على سبيل المثال: إضافة "foo" ستكون جدول المقالات: foo_article
  • يجب أن يكون المفتاح الرئيسي للجداول هو id
  • يجب استخدام محرك Innodb بشكل موحد
  • يجب استخدام مجموعة الأحرف utf8mb4_general_ci بشكل موحد
  • يمكن استخدام ORM لقاعدة البيانات مثل Laravel أو Think-ORM
  • يُفضل استخدام حقول الزمن من نوع DateTime

مواصفات الكود

مواصفات PSR

يجب أن يتوافق الكود مع مواصفات PSR4 للتحميل.

تسمية الصنف بأول حرف كبير

<?php

namespace plugin\foo\app\controller;

class ArticleController
{

}

تسمية الخاصية والدالة بأول حرف صغير بنمط الكاميل

<?php

namespace plugin\foo\app\controller;

class ArticleController
{
    /**
     * الدوال التي لا تحتاج إلى مصادقة
     * @var array
     */
    protected $noNeedAuth = ['getComments'];

    /**
     * الحصول على التعليقات
     * @param Request $request
     * @return Response
     * @throws BusinessException
     */
    public function getComments(Request $request): Response
    {

    }
}

التعليقات

يجب أن تحتوي خصائص الصنف والدوال على تعليقات تشمل ملخصاً ومعلومات عن المعاملات ونوع العائد.

الهوامش

يجب استخدام 4 مسافات لعمل الهامش بدلاً من استخدام الحاشية.

التحكم في التدفق

بعبارات التحكم في التدفق مثل (if for while foreach، وغيرها) يجب أن يليها مسافة واحدة، ويجب أن تكون أقواس بداية التحكم في التدفق في نفس السطر الذي ينتهي فيه القوس الدائري للشرط.

foreach ($users as $uid => $user) {

}

تسمية المتغيرات المؤقتة

من المستحسن أن تكون تسمية المتغيرات المؤقتة بنمط الكاميل بحرف صغير في البداية (ليس ملزمًا)

$articleCount = 100;