مدونة الويب 2.0

  • الرئيسية
  • تعريف بالمدونة
  • المصادر
  • تواصل معي
  • أخبار المدونة
  • أفكار
  • إضافات
  • برمجة
  • تصميم
  • تطوير
  • فعاليات
  • كتب
  • لقاءات
  • مدونات عربية
  • مشاريع
  • مهمات
  • مواقع

مقدمة في CakePHP

July 10, 2008 - الخميس 08 رجب 1429 التصنيف: برمجة

شعار CakePHP

1- ماهو الـ CakePHP؟

هو عبارة إطار عمل للغة PHP ومستوحى من الإطار الشهير Ruby on Rails، باختصار إنه إطار عمل لتسريع التطوير بلغة PHP وطريقهم بذلك هي “لا تعد اختراع العجلة” أي لا تكرر الشفرة المصدرية أكثر من مرة.

2- كيف أعرف إن كان الـ CakePHP مناسباً لي؟

  • يقدم لك ذكاء، سهولة وسرعة الـ Ruby on Rails.
  • هل مللت من تكرار الشفرات المصدرية لكل موقع تطوره، إذن وجدت ضالتك فهو يستخدم ميزة “لا تعد اختراع العجلة”.
  • يعمل بشكل كامل في الاستضافات المشتركة لأنه لايتطلب إعدادت أو برامج إضافية.
  • إذا كنت تريد توفير وقت تطوير الموقع لحد الثلث أو الربع حتى.
  • إذا أردت استعمال نظام القوالب فهو يوفر لك ذلك ببنيته الثلاثية المميزة (MVC).
  • إذا أردت موقع متعدد اللغات.
  • إذا كنت تفضل العناوين الجميلة والصديقة (العناوين النظيفة) لمحركات البحث (بدلاً من post.php?id=2112) يكون مثلاُ (post/2112).
  • إذا كانت لديك قاعدة بيانات واحدة فهو يوفر لك استعمال السابقة للجداول فيمكنك بناء عدة مواقع بقاعدة بيانات واحدة.


4- لكن ماهي البنية الثلاثية (MVC)؟

هي بنية تستخدم لتطبيقات الويب، ومبدأها الأساسي هو فصل شفرتك المصدرية إلى ثلاثة أجزاء بشكل يسهل لك تطويرها واكتشاف الأخطاء فيها ويوفر عليك الوقت أيضاً. وهذه الأجزاء هي:

  1. Model : كل التعامل مع قاعدة البيانات يتم في هذا الجزء، كل عمليات الإدخال، التحديث، الاختيار والتحديث في قاعدة البيانات تتم في هذا الجزء.
  2. View: هذا الجزء مسؤول عن الإظهارات من صفحات ويب، ملفات نصية وحتى ملفات PDF. هذا الجزء لايقوم بأية عملية منطقية ولكن يتم تمرير النتائج له لكي يعرضها فقط.
  3. Control: هذا الجزء مسؤول عن العمليات المنطقية كلها، كإرسال البريد الإلكتروني، رفع الملفات وهو أيضاً جسر بين الجزئين السابقين.

وهذا مخطط لهذه الأجزاء:

مخطط البنية الثلاثية MVC

دعونا نشرح هذا المخطط قليلاً:

1- يقوم المستخدم بطلب صفحة ما من موقعك (مثلا: http://example.com/page/4).

2- يقوم Dispatcher بتحليل العنوان URL. لأنه كما ذكرنا يكون العنوان بشكله النظيف فيقوم Dispatcher بتفكيكه ومعرفة أجزائه (page أي المستخدم يريد صفحة، و 4 هو رقم الصفحة).

3- يقوم جزء Controller بالعمليات اللازمة ويرسل طلب لجزء Model لاستخراج بعض البيانات من قاعدة البيانات (مثلاً يرسل لها رقم عمود لاستخراجه).

4- يقوم Model بإرجاع البيانات التي طلبها Controller ويسلمها له.

5- يقوم الـ Controller بالعمليات اللازمة لهذه البيانات المستخلصة (تقوم بإرجاع معلومات هذا العمود الذي طلبناه قبل قليل) ومن ثم يسلم هذه البيانات التي تم معالجتها لجزء View.

6- يقوم جزء الـ View ببعض التنسيقات وتجميلات المظهر لهذه البيانات.

7- ثم يقوم بعرض الناتج للمستخدم.

الأن أصبحت هذه البنية واضحة، أليس كذلك؟

3- هل CakePHP أفضل من Ruby on Rails؟

إطار العمل CakePHP يستخدم البنية الثلاثية المميزة (MVC) وهي ذاتها المستعملة في Ruby on Rails، وبشكل عام لايمكن المقارنة بينهما لأن RoR تستخدم لغة Ruby بينما CakePHP تستخدم لغة PHP، لذلك إذا كانت معرفتك بالـ PHP جيدة فعليك بالـ CakePHP.

4- ماهي الميزات التي يقدمها CakePHP لي؟

  • حزمة كاملة للاختبارات Test Suite تفيدك في الاختبار الآلي لموقعك واستخراج الأخطاء إن وجدت، بدل الطريقة القديمة بتجريب الموقع بشكل يدوي.
  • ثلاثة أصناف (Classes) مميزة: صنف للبريد الإلكتروني ووظائفه المتعددة، صنف للبسكوتات (Cookies) والتعامل معها بسهولة رائعة، وصنف التحقيق (Authentication)  لعمليات الدخول والخروج مع حماية جيدة من أنواع الاختراقات المشهورة.
  • دعم أنواع مختلفة من قواعد البيانات MySQL, DB2, Oracle, Sybase, SQL Server.
  • دعم تعددية اللغات أي استخدام عدة لغات في موقعك لكي يكون عالمياً.
  • وعشرات الميزات الآخرى التي سأذكرها في تدوينات لاحقة.

5- ماهي متطلبات تشغيل CakePHP؟

إطار العمل هذا لايتطلب منك برامج إضافية، المطلوب هو فقط Apache و PHP 4.3.2 أو نسخة أحدث، و MySQL4 أو أحدث. ولاستعمال “العناوين النظيفة” يجب أن يكون mod_rewrite موجوداً ومفعلاً في مخدمك. CakePHP تعمل على مخدم IIS.

6- ماهي الـ scaffolding (الثقالة) وماهي وظيفتها؟

الثقالة تعني تشغيل سكربت فوق بنية قاعدة البيانات الموجودة لديك لتشغيل عدة مهام بشكل تلقائي (استعراض – إدخال – حذف).

7- هل يدعم الـ AJAX؟

نعم، بالتأكيد CakePHP يدعم AJAX باستخدام عدد من التوابع (الدوال).

8- حسناً لكن ماذا عن استخدام CSS و Javascript مع إطار العمل هذا؟

بالطبع تستطيع استخدام أي شيء خارجي ويوجد مجلدات خاصة لوضعها واستخدامها، للحفاظ على البنية الثلاثية (MVC).

9- حسناً قررت استخدامه من أين أحمله؟

من هنا حمل آخر نسخة: http://cakeforge.org/frs/?group_id=23

10- هل يوجد مواقع للمساعدة في استخدامه؟

يوجد العديد من المدونات الومواقع لمطوري هذا الإطار وسأطرحهم في مواضيع لاحقة … حالياً شاهد الدليل الرسمي فهو يغطي الكثير من المواضيع:

http://book.cakephp.org/

أو تابع  دروس هذه المدونة …

شارك هذه التدوينة:
إضافة 'مقدمة في CakePHP' إلى Del.icio.usإضافة 'مقدمة في CakePHP' إلى diggإضافة 'مقدمة في CakePHP' إلى Technoratiإضافة 'مقدمة في CakePHP' إلى Stumble Uponإضافة 'مقدمة في CakePHP' إلى Google Bookmarksإضافة 'مقدمة في CakePHP' إلى FaceBookإضافة 'مقدمة في CakePHP' إلى MySpaceإضافة 'مقدمة في CakePHP' إلى Twitterإضافة 'مقدمة في CakePHP' إلى FriendFeed
الوسوم: الكيك, برمجة
أرسل هذه التدوينة لصديق أرسل هذه التدوينة لصديق
طباعة هذه التدوينة طباعة هذه التدوينة

    إقرأ أيضاً:

    • سؤال وجواب عن الكيك
    • تعلم الكيك وتطوير المواقع بالبيت
    • تنظيم الوقت البرمجي
    • ميزات النسخة 1.2 من الكيك CakePHP
    • ميزات الكيك CakePHP

29 تعليق في “مقدمة في CakePHP”

  1. تحدي البداية القوية | مدونة الويب 2.0: July 10, 2008 - الخميس 08 رجب 1429 في 3:38 م

    [...] مقالة اليوم هي عن إطار العمل CakePHP [...]


  2. Qniq: July 10, 2008 - الخميس 08 رجب 1429 في 5:47 م

    جميل أخى مقدمة جميلة ولكن عندى سؤال لك (أو هو جزء لم توضحة)
    لماذا أستعمل CakePHP ولا أستعمل Zend Framework ؟
    شىء اخر هل هناك Editor ال CP مضمنة فية فيدعم ال AutoCompletion لها من غير مشاكل
    شكرا مرة اخرى


  3. علاء: July 10, 2008 - الخميس 08 رجب 1429 في 11:55 م

    بداية موفقة أخي خالد

    تحياتي


  4. Khaled: July 11, 2008 - الجمعة 09 رجب 1429 في 1:15 ص

    @Qniq:
    سأضع موضوعاً منفصلاً لمقارنة إطر العمل
    Zend – CakePHP – CodeIgniter
    تابعني خلال الأيام القادمة وستجد الجواب بإذن الله

    وبخصوص المحرر يوجد محرر Eclipse ولكن لم يضمن داخله توابع الكيك أي عليك أن تتذكرهم بنفسك … بالمناسبة ستجد من خلال عملك به أن التوابع سهلة جداً وتذكرها سهل ولاتحتاج لمحرر ولكن تبقى فكرة المحرر جميلة وتسرع العمل

    @علاء: شكراً لك وسأراك في مدونتك ;-)


  5. احمد على: July 11, 2008 - الجمعة 09 رجب 1429 في 1:48 ص

    درس اكثر من رائع انا من متابعينك . وصراحة اسلوبك ممتاز ويتنقل بمنطقية من نقطة لاخرى , جزاك الله كل خير


  6. Khaled: July 11, 2008 - الجمعة 09 رجب 1429 في 2:12 ص

    أهلاً بالأخ أحمد نورت المدونة …


  7. audai: July 11, 2008 - الجمعة 09 رجب 1429 في 2:13 ص

    شكرا لك اخي الكريم على هذا الدرس الرائع
    وجزاك الله الف خير


  8. نبيل: July 21, 2008 - الاثنين 19 رجب 1429 في 3:58 ص

    شكراً على الموضوع


  9. فراس: July 23, 2008 - الأربعاء 21 رجب 1429 في 11:30 ص

    شكراً لك أخي خالد . بالفعل شيء راائع و جاري التحميل .

    تحياتي
    فراس


  10. محمد منذر: August 1, 2008 - الجمعة 29 رجب 1429 في 2:04 م

    شكرا لك لكن هل به نظام القوالب داخلي ؟
    ام انا اقوم باستخدام نظام قوالب خارجي ؟


  11. Khaled: August 1, 2008 - الجمعة 29 رجب 1429 في 2:31 م

    الداخلي هو View وهو جزء من MVC
    يمكنك استعمال نظام قوالب خارجي معه، مثل السمارتي:
    http://bakery.cakephp.org/articles/view/how-to-use-smarty-with-cake-smartyview


  12. شهر من التدوين | مدونة الويب 2.0: August 10, 2008 - الأحد 08 شعبان 1429 في 5:10 م

    [...] اليوم المدونة شهرها الأول فعلياً منذ طرح أول تدوينة (مقدمة في CakePHP) بعد التدوينة [...]


  13. بنية الكيك وأول controller | مدونة الويب 2.0: August 19, 2008 - الثلاثاء 17 شعبان 1429 في 10:37 ص

    [...] الكود الخاص بجزء controller وهو الجزء المنطقي من بنية MVC. تتكون بنية الكيك من مجلدين أساسيين هما app و cake، فمجلد [...]


  14. غير معروف: August 19, 2008 - الثلاثاء 17 شعبان 1429 في 2:58 م

    [...] :


  15. MEG: August 29, 2008 - الجمعة 27 شعبان 1429 في 10:10 م

    شاكر لك و ساتبع مقالاتك فيما يتعلق بـ CakePHP


  16. تعلم طبخ الكيك وتطوير الموقع في البيت :): September 2, 2008 - الثلاثاء 02 رمضان 1429 في 6:58 ص

    [...] ماهو phpCake؟ حسناً إكبس هنا [...]


  17. MVC وإكمال المتحكم الأول | مدونة الويب 2.0: September 6, 2008 - السبت 06 رمضان 1429 في 11:45 م

    [...] يخبر الكيك بأن يستعمل راجع النقطة السادسة في هذا المتحكم (controller) وسنجرب الخرج فوراً عبر طلب [...]


  18. Mostafa farghaly: September 26, 2008 - الجمعة 26 رمضان 1429 في 2:02 ص

    المقال جميل جدا ، شكرا لك فقد قمت بطلب كتاب Apress – cakephp و هو فى الطريق إلى – شكرا جزيلا وواصل التدوين لأنا نحتاج لأمثالك – اخوك مصطفى


  19. خالد: September 26, 2008 - الجمعة 26 رمضان 1429 في 5:03 ص

    أهلاً بك أخي مصطفى وماشاء الله عليك مدونة رائعة وغنية بالمعلومات المفيدة


  20. cosinus: November 19, 2008 - الأربعاء 21 ذو القعدة 1429 في 8:31 م

    السلام عليكم
    أنا مهتم بالكيك بي أتش بي غير أني أجد مشكلة في تشغيل التطبيات عليه. حيث أني أقوم تماما بكل الخطوات لتثبيت الكيك على سيرفر محلي وعلى الويب ولكن عند محاولة تطبيق درس مثل درس (TO DO) الذي يوجد في أغلب الكتب اللي تتناول الكيك يقول لي المتصفح بأن الصفحة غير موجودة.
    فهل يوجد أحد له خبرة يتفضّل بالأخذ بيدي ؟


  21. خالد: November 19, 2008 - الأربعاء 21 ذو القعدة 1429 في 9:48 م

    أهلاً بك cosinus، هل تصفحت الكيك بعد فك ضغطه في المخدم المحلي وكان يعمل؟ وتأكد من أنك قد كتبت Views الخاصة بهذا المتحكم


  22. cosinus: November 21, 2008 - الجمعة 23 ذو القعدة 1429 في 10:09 م

    أنا فككت الضغط وسميت المجلد باسم todo
    قمت بالتعديلات اللازمة بحيث لما أقوم بكتابة العنوان
    http://localhost/todo
    أجد الصفحة ترحب بي (صفحة خاصة بالكيك) وتقول لي أن الاتصال بالقاعدة تمام وكل شيء تمام.
    قمت بإنشاء الجدول item في قاعدة البيانات
    وقمت بإنشاء الملف : items_controller في مجلد todo\app\controllers
    وقمت بإنشاء الملف : item في مجلد todo\app\models
    وبعدين أقوم بفحص العمل عن طريق الرابط :
    http://localhost/todo/items
    فلا أجد شيء !!!!!!!!
    هل هنالك شيء ناقص ؟
    علما أني طبقت الدرس من كتاب :
    Apress.Beginning.CakePHP.From.Novice.to.Professional.


  23. خالد: November 21, 2008 - الجمعة 23 ذو القعدة 1429 في 10:32 م

    نعم ينقصك طبقة العرض View داخل مجلد views أنشىء مجلد باسم items وأنشىء صفحة داخله باسم index.ctp وضع داخلها بعض الكلمات وستراها تعمل بإذن الله


  24. cosinus: November 21, 2008 - الجمعة 23 ذو القعدة 1429 في 10:36 م

    شكرا على الردّ و أستغرب عدم إدراج ما تقوله في الكتاب الذي أتحدّث عنه. !
    سأقوم بالبحث والتدقيق وإن شاء الله ننجح


  25. دروس CakePHP#1 : التركيب على أوبونتو لينكس Ubuntu: February 10, 2009 - الثلاثاء 15 صفر 1430 في 10:51 م

    [...] لتعلم العمل على إطار CakePHP وذلك في مدونته الشهيرة “مدونة الويب 2 ” حيث يوجد عدة دروس يمكن الاستفادة منها للوصول إلى [...]


  26. غير معروف: September 25, 2010 - السبت 17 شوال 1431 في 9:07 ص

    [...] [...]


  27. mk: December 25, 2010 - السبت 20 محرم 1432 في 2:07 م

    ممكن شرح عن إستخدام الـ ajax
    مع أمثلة غذا ممكن


  28. khaledbell: January 27, 2011 - الخميس 23 صفر 1432 في 2:27 م

    pls help me I want to searsh a word in my data base and show me what i request my data baise “posts” : table livres
    id int,
    produit varchar,
    prix int,
    N_produit int, prix_total int;


  29. . « مش لائى: January 16, 2012 - الاثنين 23 صفر 1433 في 5:44 ص

    [...] الويب 2.0 » الأرشيف » مقدمة في CakePHP,,http://khaledalhourani.com/blog/2008/07/10/cakephp-introShare this:TwitterFacebookLike this:LikeBe the first to like this post. [...]


شاركنا برأيك؟

الرجاء الكتابة باللغة العربية الفصحى، وإذا كنت تريد كتابة سؤال حاول البحث في غوغل أولاً فغالباً ستجد عنده الخبر اليقين.

  • الأكثر قراءة
  • الأحدث
  • الأرشيف
  • تعلم الكيك وتطوير المواقع بالبيت
  • أفضل الأدوات لرفع الملفات
  • تنظيم الوقت البرمجي
  • مقدمة في CakePHP
  • أفكار ومواقع ويب 2 شهيرة
  • لماذا غوغل شريرة!
  • الخطوط العربية
  • هل تريد أن تكسب 1000 دولار؟
  • تصميم قاعدة البيانات
  • مواقع عربية بالدروبال
    1. كتب مطلوبة
    2. إصلاح علة أمنية في دروبال 7.3 و 7.4
    3. حل المشكلة أم الترقيع؟
    4. مراجعة كتاب 50 Tips and Tricks for MongoDB Developers
    5. تعريب الوحدات الإضافية
    6. البرامج العربية
    7. تعريب الدروبال 7 – العد التنازلي للنواة
    8. تعريب الدروبال 7 – اليوم الثالث
    9. تعريب الدروبال 7 – اليوم الثاني
    10. تعريب الدروبال 7 – اليوم اﻷول
    11. تعريب الدروبال 7
    1. يونيو 2011
    2. مايو 2011
    3. أبريل 2011
    4. مارس 2011
    5. فبراير 2011
    6. يناير 2011
    7. ديسمبر 2010
    8. نوفمبر 2010
    9. أكتوبر 2010
    10. أغسطس 2010
    11. مارس 2010
    12. فبراير 2010
    13. يناير 2010
    14. ديسمبر 2009
    15. سبتمبر 2009
    16. أغسطس 2009
    17. يوليو 2009
    18. يونيو 2009
    19. مايو 2009
    20. مارس 2009
    21. فبراير 2009
    22. يناير 2009
    23. ديسمبر 2008
    24. نوفمبر 2008
    25. أكتوبر 2008
    26. سبتمبر 2008
    27. أغسطس 2008
    28. يوليو 2008
    29. يونيو 2008
    • اشترك بآخر الأخبار RSS

      Feeds Counter

      أو

    • أشارك بتعريب دروبال 7

    • أراجع كتب Oreilly

      I review for the O'Reilly Blogger Review Program
    • أفضل هدية تقدمها لي

    • تقنية الطماطم

      I Use the Pomodoro Technique
    • عشرون عام لمشروع اللينكس

      I'll be celebrating 20 years of Linux with
The Linux Foundation!
    • وسوم

      Ajax css IDE jQuery php SEO TinyMCE أخبار المدونة أذكار أطر العمل أفكار أمازون إدارة المحتوى إدارة محتوى إضافات استبيان الأجاكس الأمان الاختبارات الآلية الكيك اللغة العربية برمجة تحديثات تحميل تدوينات رمضان تصميم تطوير تعريب تعلم الكيك وتطوير المواقع بالبيت تكتيك تنظيم الوقت جوائز حديث دروبال دعاية فايرفوكس فرص عمل كتب مسابقات مشاريع مهمات مواقع نصائح هندسة برمجيات وورد بريس

    حول المدونة

    • 2008-2012 مدونة الويب 2.0.
    • يمكنك نقل المحتويات أو اقتباس أي جزء منها ويفضل ذكر المصدر.
    • من الممكن أن تساعدك خريطة الموقع.

    عروض العمل

    • يمكنك أن تناقشني حول عروض العمل للمدونات أو لمواقع الويب 2.0.
    • أيضاً يمكنك استشارتي في وضع التفاصيل لمدونة أو لفكرة مشروع جديد.
    • سيرتي الذاتية على My Linkedin Profile

    تواصل معي

    • خالد الحوراني مطور ويب 2.0
    • تابع أخباري على My Twitter account
    • أو راسلني فوراً

    Switch to our mobile site