أُطر عمل 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).
قالب المشروع هو مشروع Yii يتضمن بعض الخصائص الأساسية مثل تسجيل الدخول وأنموذج الاتصال. الشيفرة البرمجية للقالب مُنظَّمة بطريقة موصى بها، ولذلك؛ يمكن عدّه نقطةَ بداية جيدة لمشاريعك. كذلك يوفر Yii قالبًا آخر يسمّى قالب المشروع المتقدم (advanced project template) الذي يُستخدَم على نحو أفضل في بيئة تطويرية لتطوير التطبيقات ذات الطبقات المتعددة.
إنّ قالب المشروع الأساسي مناسبٌ لتطوير 90% من تطبيقات الويب، وهو يختلف عن قالب المشروع المتقدم في كيفية تنظيم الكود. إذا كنت قد بدأت للتو باستخدام Yii، يجدر بك الالتزام بقالب المشروع الأساسي نظرًا إلى بساطته.
إذا لم تثبّت بالفعل Composer؛ فيمكنك فعل ذلك باتباع الإرشادات الموجودة على getcomposer.org.
- إن كنتَ تعمل على أحد النظامين Linux أو Mac OS X؛ فإنك تحتاج تنفيذَ الأوامر الآتية:
curl -sS هنا | php
sudo mv composer.phar /usr/local/bin/composer
- وإن كنت تعمل على نظام Windows؛ فبعد تنزيل Composer على شكل ملف تنفيذي (composer-setup.exe) من الموقع الرسمي وتثبيته، يمكنك تنزيل قالب مشروع جاهز لتطبيق Yii وتثبيته عن طريق تنفيذ الأمر الآتي بعد اختيار مسار معين لحفظه فيه:
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
وبذلك سيُثبَّت أحدث إصدار من قالب العمل Yii في مجلد باسم basic، ويمكن تغيير الاسم لاحقًا.
- تنزيل ملف الأرشيف من الموقع الرسمي yiiframework.com.
- فك ضغط الملف الذي نُزِّل.
- تعديل ملف web.php في مجلد config عن طريق إدخال مفتاح سري (secret key) لعنصر تكوين مطلوب من أجل التحقق من ملفات تعريف الارتباط cookies (يتم ذلك تلقائيًّا إذا كنت تستخدم Composer لتثبيت YII):
'cookieValidationKey' => 'enter your secret key here'
(2).
أُسس عمل الإطار
يستطيع المطوّرون باستخدام هذه البنية تغيير أجزاء معينة من الكود في المشروع دون أن تتأثر بقية الأجزاء.
- النماذج 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)، ولذلك؛ في هذا الإطار يكون التركيز على عدة جوانب لتسريع الأداء، منها:
على سبيل المثال: في حال ثبات جزء من صفحة الويب، يُستخدَم التخزين المؤقت للجزء (fragment caching) لتقليل الاستدعاء المتكرر لهذا الجزء، كذلك يوجد تخزين مؤقت على مستوى الخادم (server-level caching) لتحسين أداء التطبيق.
يمكن للفهرسة أن تجعل استعلامات SELECT أسرع كثيرًا، إضافةً إلى أنّ استخدام LIMIT في استعلامات SELECT يُجنّب استنفاد الذاكرة المخصصة لـ (PHP (4.
المجتمع الخاص باللغة
في حال حدوث مشكلات في أثناء تنصيب إطار العمل؛ يمكن زيارة الرابط لمعرفة أخطاء مماثلة: هنا
(3).
ويمكن التعرف إلى المشكلات البرمجية الأُخرى من خلال الروابط الآتية:
هنا
هنا
إنّ استخدامَ إطار عمل بُنِيَ مسبقًا واختبره واستخدمه مبرمجون آخرون يزيد الإنتاجية ويقلل الوقت اللازم للبرمجة، هذا ما تقدّمه أُطر عمل PHP؛ فكلّ ما عليك فعله هو اختيار إطار العمل المناسب لمشروعك والبدء بالتطوير.
المصادر:
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: هنا