المعلوماتية > برمجيات

أطر عمل PHP؛ CakePHP

من وحي الـ Ruby On Rails، "خبَزَ" شاب بولندي نسخة مُصغرة عن بيئة عمل لتطوير التطبيقات الرشيقة لتسهيل وتنظيم عمله، سماها بـالـ "كعكة" "Cake" وجعلها مفتوحة المصدر بعد أن وجد أنها قد تكون بيئة عمل جيدة لباقي المطورين، هيا لنتعرف إليها في هذا المقال (1).

لمحة تاريخية عن إطار العمل:

أُصدِرت أول نسخة مفتوحة المصدر تحت اسم CakePhp عام 2005، وكانت مُتاحة للمطورين لاستعمالها، ثم توالت الإصدارات بعدها حتى طور الفريق بقيادة مارك ستوري (Mark Story) عام 2012 هذا الإطار في الإصدار 3 وأضاف إليه عديدًا من الميزات (1). تجد آخر إصدار متوفر حتى تاريخ هذا المقال ورقمه 4.

-        تعريف بإطار العمل:

يهدف إطار العمل CakePHP إلى تسهيل عملية تطوير التطبيقات وتنظيمها بسلاسة، ويدعمه مجتمع مطورين كبير ونشط، صُمم الإطار بهدف تسهيل بعض مهام تطوير تطبيقات الويب للمطورين وتبسيطها، لكن إضافة إلى كونه مجانيًّا، تستطيع استخدامه تجاريًّا، فهو مرخص تحت رخصة MIT (1). 

-        تجهيز بيئة العمل لاستخدام إطار العمل:

يعمل الإطار على خادم (server) يُخدّم طلبات الـ HTTP (HTTP server) مثل Apache، nginx أو Microsoft IISK يحتاج إلى الإصدار 5.6 من لغة الـ PHP على الأقل (1). 

إضافة إلى ذلك يحتاج إلى توفر مجموعة من المتطلبات وهي:

-        تثبيت إطار العمل على الجهاز:

 لاستخدام الإطار تحتاج إلى تثبيت مدير الاعتماديات Composer الذي يدير اعتماديات كل مشروع محليًّا، وتستطيع تتبع خطوات التثبيت وإنشاء مشروع صغير على نحو تفصيلي من الرابط الآتي: هنا

-        أُسس عمل الإطار:

يعتمد الإطار مبدأ تفضيل الاصطلاحات على التهيئة conventions over configuration، وهذا يعني أنه يُفضل وجود بنية تنظيمية معينة وقواعد تسمية معينة على التهيئة اليدوية للتطبيق، مما يجعله سهلَ الإعداد لتبدأ بالعمل على تطبيقك مباشرة دون عناء يُذكر (1). 

إضافة إلى كونه يدعم بنية أو معمارية Model-View-Controller (MVC، إذ يعتمد على عزل مكونات التطبيق لتحقيق مبدأ عزل أو فصل الاهتمامات separation of concerns، الذي يحقق بدوره استقلالية واجهة المستخدم (View) عن الجزئية التي تعالج دخل المستخدم (وحدات التحكم Controllers) (5).

تُمثّل طبقة النموذج Model المكون الذي يُعالج حالات الاستخدام الخاصة بالتطبيق ويُعالج البيانات الداخلة إليه مثل التحقق من صحة البيانات Validation وغيرها من عمليات معالجة البيانات (1).

بعد معالجة البيانات يأتي دور الواجهات لعرض هذه البيانات للمستخدم، ويكون غالبًا مُكوَّن من نصوص تُمثل البيانات التي تمت مُعالجتها وغالبًا ما تكون في صفحات HTML. (1)

تدير وحدات التحكم التواصل بين المستخدم وطبقات الـ MVC، وتستقبل طلبات مستخدمي التطبيق وتوجّهها بناءً على نوع الطلب، ليحصل العمل بالتوازي مع النموذج والواجهات لعرض ما طلبه المستخدم (1). 

يعتمد الإطار على آلية توجيه (Routing) تربط المسارات (URLs) التي يطلبها المستخدم مع مجموعة التعليمات التي يجب على التطبيق تنفيذها، وهي في وحدات التحكم داخل دوال تُدعى بـ actions، وتدعم هذه الآلية فكرة التوجيه المعكوس (reverse routing) التي تستطيع من خلالها تغيير إعدادات آلية التوجيه بسهولة (1). 

في كل طلب يُطلب من المستخدم هناك طبقة متوسطة (Middleware) مهمتها مُعالجة إضافية على الطلب. فعلى سبيل المثال؛ إعادة توجيه المسارات في التطبيق وفق شروط معينة وتحديد مسار الصور وغيرها من ملفات التطبيق (تُدعى بال assets) أو تحديد كيف ستُعالج الأخطاء Exception handling وغيرها (1). 

-        ميزات إطار العمل:

يُسهل إطار العمل CakePHP التعامل مع قاعدة البيانات باستخدامه مفهومي السجل النشط Active Record وربط البيانات Data mapper، وهدفه من ذلك تبسيط التخاطب مع قاعدة البيانات قدر الإمكان، فقد وّفر صفيّن أساسيين للتعامل مع معظم ما يحتاجه المستخدم من قاعدة البيانات هما المستودع Repository والكيان Entity.

 يقّدم الإطار مجموعة من المُكونات البرمجية الإضافية (plugin) التي تُساعد في عديد من الأمور. على سبيل المثال هناك مكوّن السماحية (Authorization plugin) الذي يعمل بوصفه طبقة متوسطة تُسّهل عملية إعطاء صلاحيات الوصول للمصادر لمختلف طلبات الـ HTTP (4).

إضافة إلى ذلك، تُعد عملية تحديد المستخدمين والمصادقة Authentication عليهم من الأشياء الأكثر شيوعًا عند بناء تطبيقات الويب. لذلك، يُبسط الإطار هذه العملية بتقديمها كمكون إضافي plugin تستطيع تفعيله بسهولة (1). 

يُعد التعامل مع قاعدة البيانات أمرًا أساسيًّا في معظم التطبيقات؛ لذا يُقدم الإطار مُكوّن التهجير (Migration plugin) الذي يُسهل عملية التعديل على مخطط قاعدة البيانات في أثناء عملية التطوير، كإضافة جدول أو حقل إلى جدول موجود مسبقاً وغيرها من العمليات على قاعدة البيانات، وكل ذلك يتم بشكل كامل عبر لغة الـ PHP (5).

يُقدّم هذا الإطار إضافة تُدعى منصة الخَبْز (Bake Console) يُمكنك تثبيتها باستخدام Composer، تُوفر لك إمكانية إنشاء أي مكوّن بسهولة، وتستطيع من خلال هذه المنصة إنشاء مكونات مثل وحدات التحكم والنماذج والواجهات وغيرها من مكونات الإطار التي ذُكِرَت سابقًا وذلك على نحوٍ سلس وسريع (6).

-        المجتمع الخاص باللغة:

دُعِمَ إطار CakePHP دعمًا كبيرًا عبر توصيفه توصيفًا دقيقًا في أثناء بنائه، إضافة إلى أن هناك منتدًى خاصًّا بهذا الإطار يستطيع من خلاله المطورون مساعدة بعضهم البعض والتواصل مع مطوري الإطار. 

تستطيع زيارة هذا المنتدى عبر الرابط الآتي: هنا

للتعرف أكثر على إطار العمل CAKEPHP يمكن مشاهدة هذا الفيديو: هنا

المصادر:

1. Cake PHP Cookbook Documentation [Internet]. 3rd ed. Cake PHP; 2022 [cited 10 February 2022]. Available from: هنا

2. PHP: Introduction - Manual [Internet]. Php.net. 2022 [cited 10 February 2022]. Available from: هنا

3. PHP: Introduction - Manual [Internet]. Php.net. 2022 [cited 10 February 2022]. Available from: هنا

4. Quick Start - 2.x [Internet]. Book.cakephp.org. 2022 [cited 10 February 2022]. Available from: هنا

5. Migrations - 3.x [Internet]. Book.cakephp.org. 2022 [cited 10 February 2022]. Available from: هنا

6. Bake Console - 2.x [Internet]. Book.cakephp.org. 2022 [cited 10 February 2022]. Available from: هنا