Yaravel هو إطار عمل PHP MVC صغير ولكنه قوي يمكن استخدامه لعرض HTML وكواجهة برمجة التطبيقات (API). ويتميز بنظام الطلب والتوجيه، ومحرك عرض مع دعم لأوراق الأنماط وجافا سكريبت، وORM يسمى Helloquent للاتصال بقاعدة البيانات. تم تصميم Yaravel ليكون سريعًا وفعالًا ومرنًا، مما يجعله خيارًا مثاليًا للمطورين الذين يتطلعون إلى إنشاء تطبيقات ويب باستخدام PHP.
Tweeter هو تطبيق شبيه بتويتر تم إنشاؤه باستخدام إصدار مبكر من هذا الإطار، فهو يسمح للمستخدمين بنشر رسائل قصيرة، تُعرف باسم "التغريدات"، والتفاعل مع الآخرين من خلال الإعجابات والتحقق من تغريداتهم. يتميز التطبيق بخلاصة في الوقت الفعلي للتغريدات الأخيرة من المستخدمين.
(التحقق من ذلك مباشرة أو الريبو لهذا التطبيق)
يمكن تسجيل مسارات تطبيقك في المجلد "/routes" . يجب وضع مسارات API في ملف "api.php" وصفحات الويب في ملف "web.php" .
لتسجيل مسار ويب، استخدم وظيفة addRoute على كائن جهاز التوجيه. تأخذ الدالة المعلمات التالية:
// $router->addRoute(path, controller path, action);
$ router -> addRoute ( " / " , DefaultController::class, " viewDefault " );
راجع الأمثلة الموجودة في "/routes/web.php" لمزيد من المعلومات.
لتسجيل مسار API، استخدم وظيفة API على كائن جهاز التوجيه. تأخذ الدالة المعلمات التالية:
// $router->addRoute(path, controller path, method);
$ router -> api ( " / " , DefaultController::class);
$ router -> api ( " / " , DefaultController::class, " post " );
راجع الأمثلة الموجودة في "/routes/api.php" لمزيد من المعلومات.
يتم تضمين كائن $this->request داخل وحدات التحكم وهو مثيل لفئة HttpRequest . أنه يحمل كافة البيانات من الطلب. الكائن له عدة خصائص، منها:
يتم استخدام فئة HttpResponse للرد على مكالمات API. لديها وظيفة ثابتة تسمى الاستجابة والتي لها معلمتين:
MVC (Model-View-Controller) هو نمط تصميم برمجي يفصل التطبيق إلى ثلاثة مكونات رئيسية
يعد مكون النموذج في الإطار مسؤولاً عن معالجة البيانات ومنطق الأعمال والتواصل مع قاعدة البيانات. ويتم ذلك من خلال استخدام Helloquent، وهي أداة ORM مصممة خصيصًا لإطار العمل. لمزيد من التفاصيل، راجع وثائق Helloquent في هذا الرابط https://github.com/you97ssef/Helloquent.
يجب تخزين النماذج في الدليل /app/Models
ويجب توسيع فئة Model
(كما هو موضح بواسطة فئة Person
في الكود).
يحتوي مكون العرض على وظائف تقوم بإرجاع HTML ممزوجًا بالبيانات ليتم عرضها للمستخدم. يمكن تمرير البيانات المستخدمة من وحدة التحكم ويمكن الوصول إليها عبر $this->data
attribute(array). يجب تخزين طرق العرض في الدليل /app/views
ويجب توسيع فئة View
(كما هو موضح بواسطة فئات DefaultView
أو ErrorView
في الكود).
النص المنقح: يتعامل مكون وحدة التحكم مع إدخالات المستخدم ويقوم بتحديث النموذج والعرض وفقًا لذلك. يجب تخزين وحدات التحكم في الدليل /app/Controllers
ويجب توسيع فئة Controller
. يحتوي على الخاصية $this->request
التي تحتوي على بيانات من الطلب الوارد. للرد كصفحة ويب، يجب تعريف طريقة العرض ويجب استدعاء وظيفة render
الخاصة بهذا العرض، مثل $view->render("renderBody")
. للرد على استدعاء API، يجب استخدام وظيفة respond
من فئة HttpResponse
، على سبيل المثال HttpResponse::respond($data)
. راجع DefaultController
للحصول على مثال.
يبدأ التطبيق بملف Index.php. أولاً، يتم إنشاء الطلب، يليه تسجيل CSS وJS. بعد ذلك، تتم تهيئة تكوين التطبيق وتكوين قاعدة البيانات، ثم يتم إعداد جهاز التوجيه. وأخيرًا، يتم تنفيذ التطبيق عن طريق استدعاء $router->run();
(راجع ملف Index.php لمزيد من المعلومات)
تم ترخيص إطار العمل هذا بموجب ترخيص MIT، وهو ترخيص مفتوح المصدر يسمح باستخدام البرنامج وتعديله وتوزيعه. يتيح ترخيص MIT درجة عالية من المرونة في كيفية استخدام البرنامج ويتضمن الحد الأدنى من القيود.