مواصفات تطوير إضافات التطبيقات
متطلبات إضافات التطبيقات
- لا يجوز أن تحتوي الإضافات على أكواد أو أيقونات أو صور تنتهك حقوق الملكية
- يجب أن يكون كود مصدر الإضافة مكتملاً ولا يجوز تشفيره
- يجب أن توفر الإضافة وظائف كاملة ولا يجوز أن تكون وظائف بسيطة
- يجب توفير مقدمة وظائف كاملة ووثائق
- لا يُنصح باستخدام الكوروتينات في الإضافات، حيث قد لا يكون المستخدمون قد فعّلوا الكوروتينات
معرف إضافات التطبيقات
لكل إضافة تطبيق معرف فريد يتكون من أحرف. يؤثر هذا المعرف على اسم مجلد الكود المصدري للإضافة ومساحة أسماء الفئات وبادئة جداول قاعدة بيانات الإضافة.
افترض أن المطوّر استخدم foo كمعرف للإضافة، فإن مجلد الكود المصدري للإضافة سيكون {المشروع_الرئيسي}/plugin/foo، ومساحة أسماء الإضافة المقابلة ستكون plugin\foo، وبادئة الجداول ستكون foo_.
نظراً لأن المعرف فريد على الشبكة بالكامل، يجب على المطوّرين التحقق من توفر المعرف قبل التطوير عبر رابط التحقق من معرف التطبيق.
قاعدة البيانات
- أسماء الجداول تتكون من أحرف صغيرة
a-zوشرطة سفلية_ - يجب أن تبدأ جداول بيانات الإضافة ببادئة معرف الإضافة، مثلاً جدول article لإضافة foo هو
foo_article - المفتاح الأساسي للجدول يجب أن يكون
id - محرك التخزين يستخدم محرك innodb بشكل موحد
- مجموعة الأحرف تستخدم utf8mb4_general_ci بشكل موحد
- يمكن استخدام Laravel أو Think-ORM لـ ORM قاعدة البيانات
- يُنصح باستخدام DateTime لحقول الوقت
معايير الكود
معايير PSR
يجب أن يتوافق الكود مع معايير تحميل PSR4
تسمية الفئات بطريقة CamelCase تبدأ بحرف كبير
<?php
namespace plugin\foo\app\controller;
class ArticleController
{
}
خصائص وطرق الفئة تبدأ بحرف صغير بطريقة camelCase
<?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) {
}
أسماء المتغيرات المؤقتة
يُنصح بتسميتها بطريقة camelCase تبدأ بحرف صغير (غير إلزامي)
$articleCount = 100;