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

أُطر عمل PHP؛ YII

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

بدأ تشيانغ شيويه (Qiang Xue) بتطوير إطار العمل المفتوح المصدر في كانون الثاني (يناير) من عام 2008، وهو الذي طَوّر مسبقًا إطار العمل PRADO.

أُطلِقت النسخة الأولية من إطار العمل Yii رسميًّا في تشرين الأول (أكتوبر) 2008، وأُطلِقت النسخة YII 1.0 رسميًّا في الثالث من كانون الأول (ديسمبر) 2008، وفي الأول من تشرين الأول (أكتوبر) عام 2012 كانت النسخة تحمل رقم 1.1.12، وظلّت في تطور مستمر (1).

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

Yii هو إطار عمل PHP عالي الأداء يستند إلى المكوّنات (components)، ويتيح أقصى قدرٍ من إعادة الاستخدام في برمجة الويب ويُسرِّع عملية تطوير تطبيق الويب الخاص بك على نحو ملحوظ (2)، إضافةً إلى أنه يتميّز بالمرونة، ولذلك؛ من السهل ضبط إطار العمل ليتناسب مع احتياجاتك (3).

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

يعمل YII على أنظمة التشغيل ويندوز Windows ولينوكس Linux.

يحتاج عدّةَ متطلبات، هي:  

- خادم ويب (Web Server): يعمل الإطار مع أي مخدّم ويب، لكنّه اختُبِر ليعمل على مخدمات Apachi وNginx.

- مفسّر اللغة (Php Interpreter): نحتاج إصدارَ 5.4 PHP على الأقل، علمًا أنّ إطار العمل يعطي الأداء الأفضل مع نسخة 7 PHP.

- قاعدة البيانات (Database): يمكن استخدام أي قاعدة بيانات تدعم PDO Drivers (Php Data Object)، على سبيل المثال: MySql4.1 , PostgreSQL 7.3, Oracle

(4).

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

لتثبيت Yii يجب فعل الخطوتين الآتيتين:

1- تنزيل إطار العمل Yii

2- فك ضغط ملف إصدار Yii إلى مجلد يمكن الوصول إليه عبر الويب.

شرح الخطوة الأولى:

يمكن التثبيت بطريقتين: باستخدام مدير الاعتماديات (Composer)، أو عن طريق تنزيل ملف أرشيف (Archive file).

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

يستطيع المطوّرون باستخدام هذه البنية تغيير أجزاء معينة من الكود في المشروع دون أن تتأثر بقية الأجزاء.

- النماذج Model: تمثّل المعلومات وقواعد العمل المرتبطة بهذه المعلومات.

  المعلومات مثل نماذج HTML أو سطر في جدولٍ من قاعدةِ بيانات، أما قواعد العمل فهي للتحقق من واصفات معينة (attributes).

- View: يحتوي عناصر واجهة المستخدم مثل التنسيق (Layout) والتبويب (Widget). 

- وحدات التحكم Controller: ينظّم العمل بين السّابقَين عن طريق تصنيف الطلبات المتشابهة المنطق معًا. 

إضافةً إلى استخدام بنية MVC، يقدم Yii متحكّمًا أماميًّا (front-controller) يُدعَى التطبيق (Application) الذي يغلّف سياقَ تنفيذِ عملية معالجة الطلب؛ كطلب تسجيل الدخول أو غيره.

هو عبارة عن bootstrap PHP script يعالج طلب المستخدم في البداية، وهو script  PHP الوحيد الذي يسمح للمستخدمين النهائيين بطلب التنفيذ الفوري.

مَهمته الأساسية هي تجميع معلومات عن طلب المستخدم، ثم يرسلها إلى متحكّم مناسب لإنجاز معالجة إضافية.

وهو يُعدّ المكان المركزي للحفاظ على إعدادات التهيئة لكل مرحلة من مراحل التطبيق.

تُنشَأ بواسطة التطبيق عندما يطلبه المستخدم.

عندما تعمل وحدة التحكم فإنها تؤدي العمل المطلوب، علمًا أنّها تحتوي على عمل افتراضي؛ فعندما لا يحدد طلب المرسل أمرًا معيّنًا لتنفيذه فإنها تنفّذ الأمر الافتراضي (4).

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

يقدّم إطار العمل العديد من الميزات، وهي:

1- يدعم بنية Model-View-Controller) MVC)

(1).

2- السرعة: يُعدّ أكثر سرعة من بقية إطارات عمل PHP لأنه لا ينزّل ملف Class إلا عند استخدامه أول مرة، كذلك الأمر للكائنات؛ فهي لا تُشكَّل إلا عندما يُوصَل إليها أول مرة (1).

3- يحقق جميع الميزات الأساسية اللازمة لتطوير تطبيقات الويب؛ مثل بوابات الموقع (portals)، والمنتديات (forums)، والمشاريع التجارية (e-commerce projects)، وأنظمة إدارة المحتوى (content management systems: CMS)، وخدمات (RESTful) على الويب (RES اختصارًا لـ Representational State Transfer)

(1).

4- تقليل ملفات script: غالبًا ما تحتاج الصفحات المعقدة إلى تضمين العديد من ملفات CSS وJavaScript، مما يزيد الحمل على الخادم، ولذلك يُقلَّل عدد هذه الملفات بدمجها عن طريق تعيين ملفات JavaScript إلى عنوان URL؛ أي إذا احتاجت بعض المكونات تضمينَ أيٍّ من ملفات JavaScript هذه، فسيضمّن إطارُ العمل عنوانَ URL (مرة واحدة) بدلًا من ملفات Script الفردية (4).

5- حماية ملفات تعريف الارتباط (Cookies) من التعرض لهجوم: تُعدّ حمايتهم أمرًا بالغ الأهمية لأنه حالما حصل المهاجم على معرّف الجلسة (Session ID) فسيكون قادرًا على الحصول على المعلومات المرتبطة بهذه الجلسة كلها.

يوجد العديد من التقنيات لتحقيق ذلك؛ إحداها هي استخدام التطبيق بروتوكول SSL لإنشاء قناة اتصال سرية وتمرير ملف تعريف الارتباط الخاص بالموثوقية (Reliability) عبرها عن طريق اتصال HTTPS، ومن ثم لن يكون المهاجم قادرًا على فك تشفير المحتوى في ملف تعريف الارتباط المنقول.

ومن الجدير بالذكر أنّ بروتوكول (SSL (Secure Sockets Layer تقنيةُ أمان تُستخدَم لتأمين معاملات الخادم مع المتصفحات، ويتضمّن هذا عمومًا تأمينَ أي معلومات تُمرَّر بواسطة متصفح (مثل رقم بطاقة ائتمان العميل أو كلمة المرور) إلى خادم ويب (مثل متجر عبر الإنترنت) (4).

6- ضبط الأداء: يتأثر أداء تطبيقات الويب بالعديد من العوامل مثل عرض الحزمة (bandwidth) والدخول إلى قاعدة البيانات وعمليات نظام الملفات (File System)، ولذلك؛ في هذا الإطار يكون التركيز على عدة جوانب لتسريع الأداء، منها:

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

في حال حدوث مشكلات في أثناء تنصيب إطار العمل؛ يمكن زيارة الرابط لمعرفة أخطاء مماثلة: هنا

(3).

ويمكن التعرف إلى المشكلات البرمجية الأُخرى من خلال الروابط الآتية:

هنا

هنا

إنّ استخدامَ إطار عمل بُنِيَ مسبقًا واختبره واستخدمه مبرمجون آخرون يزيد الإنتاجية ويقلل الوقت اللازم للبرمجة، هذا ما تقدّمه أُطر عمل PHP؛ فكلّ ما عليك فعله هو اختيار إطار العمل المناسب لمشروعك والبدء بالتطوير. 

المصادر:

1- Bogdanov A, Eliseev D, Makarov A. Yii2 Application Development Cookbook - Third Edition. 3rd ed. Packt Publishing; 2016. Available from: هنا

2- Yii Framework [Internet]. Yii Framework. [cited 28 February 2022]. Available from: هنا

3- Manger C, Trejderowski T, Paduch J. Advantages and disadvantages of framework programming with reference to Yii php framework, gideon .net framework and other modern frameworks. Studia Informatica [Internet]. 2010 [cited 28 February 2022];31(4):119-137. Available from: هنا

4- GitHub - yiisoft/yii: Yii PHP Framework 1.1.x [Internet]. GitHub. 2021 [cited 28 February 2022]. Available from: هنا