13‏/08‏/2013

ما هو الFramework وكيف يعمل ؟ PHP Frameworks


السلام عليكم ورحمة الله وبركاته .

لفظ متداول بكثرة في عالم برمجي الويب وهو Framework وليس فقط في لغة PHP ولكن ايضاً في لغات مثل Python,ruby ففي ايضاً لفظ معين مشهور وهو RubyOnRails
الRubyOnRails ليست هي لغة الروبي ، لغة الروبي هي لغة تطبيقات سطح المكتب ، وهذا الفريموورك يجعلنا نستطيع ان نبرمج تطبيقات ويب من خلاله .
ولا أحبذ استخدامه ولم استخدمه بسبب مشاكل الإستضافات معه وبعضها لا يدعمه .
لا اريد الخروج عن الموضوع الأساسي الذي هو PHP Frameworks
PHP FRAMEWORK - Codeigniter,CakePHP,Zend,Symphony
كل هذه الأسماء هي أسماء لفريموورك ، فريم وورك يعني إطار العمل ، إطار العمل ببساطة مجموعة من الlibraries مكتبات ، مثلاً database .
في كلاس في إطار العمل codeigniter خاص بالتعامل مع قاعدة البيانات من نوع mysql وهو يسهل الوظيفة جداً ، طبعاً يوجد مكتبات أخري كثيراً للتعامل مع العديد من الأشياء .
يعني نستخلص من الكلام السابق ان إطار العمل هو مجموعة من الكلاسات او مجموعة من المكتبات . جميل ؟ جميل
الآن كيف يعمل إطار العمل ؟ كيف تبرمج عليه ؟
إطار العمل يستخدم أسلوباً معيناً في البرمجة . كيف ذلك ؟
هذا الأسلوب يسمي MVC
Models - Views - Controllers
لكل واحد من هؤلاء وظيفة معينة .
راح نتخيل الموضوع ، عندنا ثلاث ملفات ، مثل هو الموديل والثاني هو الكنترولر والثالث هو الفيو .
Model
الmodel هو ملف التعامل مع قاعدة البيانات ، يعني ، الموديل لا تكتب فيه اي echo ، الموديل فقط وظيفته هو وظيفة واحدة وانتهينا  الوظيفة هي التعامل مع قاعدة البيانات .
من جلب بيانات إلخ ،،،
Views
الview هو الصفحة التي تظهر للمستخدم ، من إسمه ، view مثل كلمة المنظر او الواجهة ، سنعطي مثال علي كل هذا ، الفيو غالباً يحتوي علي اكواد HTML لأنه هو المسؤول عن تصميم الصفحة .
Controller ومثال عليهم كلهم
الcontroller وهو الرابط ، او مثلاً سنسميه الglue وهو مثل غرفة التحكم ، منه ، تأتي من البيانات من الموديل ، ثم تعطيها للفيو كي يعرضها .
لو أردنا مثال .
مثال علي MVC
الآن عندنا الصفحة الرئيسية ، ولنفترض انها تقوم بعرض المقالات . سنبدأ في البداية بصفحة الmodel
model
صفحة الموديل ستجلب آخر المقالات من قاعدة البيانات ، فقط ! - استخلصنا من ذلك انها فقط تتعامل مع قاعدة البيانات .
controller
سيأخذ البيانات من الموديل ، ويضيف عليها بيانات من عنده ليس من قاعدة البيانات ، يعني مثل تاريخ اليوم إلخ ،، وفي النهاية سيستدعي الview ويعطي له البيانات .
view
سيأخذ البيانات من الcontroller وسيعرضها للمستخدم ويعرض أي بيانات أخري .

الآن بعد ان فهمنا نظام الMVC
سنشرح فريم وورك مثل Codeigniter
Codeigniter
كود اجنيتر او أي إطار عمل آخر مثل CakePHP هو مجموعة من الكلاسات للقيام بمختلف المهام ، مثلاً التعامل مع قاعدة البيانات ، السيشن ، التأمين إلخ ،،،
لذلك هو يوفر لك البيئة الكاملة لبرمجة او تطوير موقع ، انت لن تبرمج كثيراً ، ستستدعي الكلاسات الجاهزة وتعمل فقط !
هل استخدم إطار العمل الجاهز ؟
علي حسب مستواك البرمجي ، وعلي حسب الطلب ، لو كنت محترف في البرمجة بالكلاسات وتعمل في شركة معينة ، فأنت تحتاج إلي إطار عمل لأنه سيسيرع البرمجة بشكل كبير ، والسبب انك تستخدم اشياء جاهزة ستختصر شغلك .
لو كنت مبتدأ او متوسط وأنت حالياً في مرحلة التعلم ما زلت ، فلو تعلمت إطار عمل مثل كيك بي اتش بي ستصبح من أفشل المبرمجين !
مالسبب ؟ أنت تعمل علي اكواد جاهزة ، يعني انت تقريباً لن تبرمج ولن تتعلم الجديد في البرمجة ، لو اردت التعامل مع قاعدة البيانات ، ستستخدم كلاسات ودوال جاهزة ، لن تبرمج دوالك ، لذلك إطار العمل .
مناسب فقط لمن يحتاجه .
مميزات إطار العمل
  1. سرعة كبيرة جدا في عملية البرمجة .
  2. برمجة كائنية بالكامل OOP
  3. إستخدام نظام MVC مما يجعل السكربت منظم كثيراً .
عيوب إطار العمل
  1. سيجعلك تقريباً تنسي البرمجة العادية ، لذلك لم أنصح به لمن في مرحلة التعلم .
  2. ستعتمد علي أكواد الآخرين مما سيجعل مستواك البرمجي متجمد وغير متطور .
  3. الحماية ، انت تعمل علي أكواد آخرين ، وهذه الأكواد مفتوحة المصدر Open Source يعني ممكن اي واحد يحمل إطار عمل مثل Codeigniter ويحاول إكتشاف الثغرات الموجودة به .
    يعني أنت مرغوم بشئ معين ويمكن اكتشاف ثغراته بسهولة لو كان غير محمي
أريد إستخدام إطار عمل . او برمجة واحد خاص بي
يمكنك برمجة إطار عمل خاص بك باستخدام نظام MVC وعمل مكتبة من الكلاسات وستحصل علي فريم وورك .
او يمكنك البرمجة باستخدام Codeigniter او اي فريم وورك آخر لكن ، تققوم بتطوير هذا الفريم وورك ، يعني تغير في الملفات الرئيسية والمكتبات الموجودة في الفريم وورك ، تضع كلاساتك وتزيل الكلاسات
اللي ما تحتاجها .
أريد تعلم إطار عمل  !
لو ارد تعلم إطار عمل فالدليل الأول المناسب لك هو الDoccumentation الخاص بإطار العمل لأنه سيحتوي علي كل شئ تريده .
لو أردت تعلم إطار العمل Codeigniter
فهنالك دروس في موقع Nettuts تسمي Codeigniter From Scratch
لا أأحد يقوللي إشهار لأن شبكة Tuts+ كلها من أشهر المواقع العالمية في التعليم .


إلي هنا ينتهي درسنا البسيط ، أتمني ان تكونواً إستفدتم من الدرس ، ان شاء الله سيكون هنالك دروس جديدة قريباً .

درس منقول للامانة

3 التعليقات:

  1. حقيقة معلومات قيمة جدا و فعلا وضحتلى أشياء كنت أجهلها شكرا جزيلا لك
    و بارك الله فيك

    ردحذف
    الردود
    1. الشكر لله
      فية درسين فيديو عن الفريمورك yii
      هيفيدوك جدا
      http://husseinmostafa.blogspot.com/search/label/yii-PHP-Framework

      حذف

 

الاكثر زيارة

الاكثر زيارة خلال الشهر

الاكثر زيارة خلال الاسبوع