مدونة الويب 2.0

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

بنية الكيك وأول controller

19, أغسطس 2008 التصنيف: تطوير

بسم الله الرحمن الرحيم

كنا قد تحدثنا في الأجزاء الماضية في التطوير عن:

  • تحديد التقنيات
  • تصميم قاعدة البيانات
  • تحميل وتثبيت الكيك

واليوم سنكمل في مشروع قائمة المهام حيث سنستعرض بنية الكيك بعد أن ثبتناه وربطناه مع قاعدة البيانات وسنقوم بكتابة الكود الخاص بجزء controller وهو الجزء المنطقي من بنية MVC.
تتكون بنية الكيك من مجلدين أساسيين هما app و cake، فمجلد cake يحوي جميع المكتبات والأصناف الخاصة بالكيك ولايجب بحال من الأحوال أن نعدل فيه، فعملنا سيقتصر على مجلد app حيث سيحتوي على كامل المشروع.

الأن سندخل إلى مجلد app وسنشرح بنيته بشكل مفصل:
- config: يحتوي هذا المجلد على إعدادات الموقع كلها سواء ربط قاعدة البيانات،إعدادات الكاش وحالة الموقع بشكل عام.
- controllers: سيحتوي على جميع الأصناف الخاصة بالجزء المنطقي من مشروعنا.
- locale: توضع به ملفات اللغات في حال كان الموقع بعدة لغات.
- models: يحتوي على الأصناف التي ستتعامل مع قاعدة البيانات.
- plugins: الإضافات، كلنا نعرفها … إذا أردنا صنع إضافة للموقع نضعها هنا.
- tests: نضع بها ملفات الاختبار للموقع (موضوع متقدم سنتحدث عنه لاحقاً).
- tmp: يستخدمه الكيك لعملية الكاش، حيث يخزن بداخله الملفات.
- vendors: المكتبات الخارجية التي نريد التعامل معها في هذا المجلد.
- views: الجزء الثالث من بنية (MVC)، حيث تحتوي على ملفات العرض.
- webroot: يوجد داخله العديد من المجلدات:
- css: نضع به ملفات CSS الخاصة بإظهارات الموقع.
- files: يستخدم لتخزين الملفات أي الملفات التي نريد رفعها على السيرفر.
- img: الصور الخاصة بالموقع.
- js: نضع به ملفات الجافاسكربت.
هذه تقريباً نظرة سريعة نوعاً لكن مفصلة على بنية الكيك داخل مجلد app الذي يهمنا في تطوير المشروع.

ملاحظة هامة وهي أنه مقابل كل جدول في قاعدة البيانات يجب أن يقابله:
- ملف خاص به في مجلد controllers
- ملف خاص به في مجلد models (في بعض الحالات التي نتكب بها محتويات ثابتة لا نحتاج لها الملف).
- مجلد خاص به في مجلد views حيث يحتوي المجلد على جميع ملفات الإظهار الخاصة بهذا الجدول، سنستعرضه بالتفصيل لاحقاً.

سنكتب أول controller وهو الخاص بجدول lists الآن أصبح groups. نتوجه إلى مجلد controller وننشىء ملف اسمه:
groups_controller.php
هذا الاسم يجب أن يكون بهذا الشكل أي اسم الجدول_controller واللاحقة php …
نقوم بتحرير الملف باستخدام أي برنامج تحرير ملفات … ونكتب التالي:

<? php
   class GroupsController extends AppController {
   var $name = 'Groups';
   }
?>

ماذا حصل الأن؟

  • أولاً الشفرة التي نكتبها هي PHP لذلك وضعناها داخل مجال PHP وهكذا جميع الشفرات في جزء controller حيث لانقوم بكتابة أي إظهار أو أي شفرة HTML مثلاً.
  • عرفنا صنف جديد اسمه GroupsController وهذا الصنف يرث من الصنف الأب لكل أصناف controller وهو AppController.
  • لاحظوا اسم الصنف البرمجي وهو GroupsController، يجب أن نكتب اسم الجدول في قاعدة البيانات ولكن بحرف كبير متبوعاً بكلمة Controller أيضاً بحرف كبير.

لماذا نرث من الصنف الأب AppController؟
هذا الصنف الأب يحتوي بداخله على كل الأشياء التي يستعملها الكيك في بنية controller، فهو يحتوي على جميع التوابع المهمة للتعامل مع models ومع views ومع الكثير من الأصناف الآخرى. لذلك إن لم نرث منه فسنضطر إلى كتابة هذه التوابع في كل صنف وهذا مايخالف معمارية البرمجة الغرضية التوجه OOP. أما إذا ورثنا منه فسنستخدم كل خصائصه وتوابعه بشكل سهل وبسيط.

داخل هذا الصنف عرفنا متحول اسمه name وهذا الاسم لايجب تغييره وأعطيناه قيمة Groups. هذه الخطوة مهمة لنسخة PHP4 فقط. أما بالنسبة لمستخدمي PHP5 فهي ليست ضرورية.

هذا كل شيء لليوم وغداً سنكمل إن شاء الله …

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

    إقرأ أيضاً:

    • سؤال وجواب عن الكيك
    • تحميل وتثبيت الكيك
    • تصميم قاعدة البيانات
    • تحديد التقنيات
    • الشهادات

19 تعليق في “بنية الكيك وأول controller”

  1. تعلم الكيك وتطوير المواقع بالبيت | مدونة الويب 2.0: 19, أغسطس 2008 في 2:22 ص

    [...] بنية الكيك وأول controller [...]


  2. sfsf: 19, أغسطس 2008 في 9:14 ص

    أيوه كده أخيرا بدأنا فى الجد
    بس فى سؤالين أولا أليس من المفروض عمل ال model قبل إنشاء ال controller
    ثانيا: هل إسم الكلاس فى الكونترولر ListsController يجب أن يكون بهذه الصيغة مثل إسم الملف


  3. بسام الجفري: 19, أغسطس 2008 في 9:24 ص

    شكرا لك…


  4. mohmf: 19, أغسطس 2008 في 9:49 ص

    جيد خالد .
    هناك ملاحظه صغيره خاصه بموضوع التسميات في الـ CP .
    للاستفاده من مزايا الـCP , يجب اتباع نمط الاسماء الحدد فيه , مثلاً اسم الصنف الخاص بالمتحكم , يجب ان يكون بشكل جمع , ويتعمد نمط الـ CamelCased و يكون ملحوقاً بلكمه Controller .
    للمزيد , يمكن مراجعه :
    http://book.cakephp.org/view/22/cakephp-conventions

    @ بسام , سلم لي على راعي المعصوب :) ..


  5. خالد: 19, أغسطس 2008 في 10:34 ص

    @sfsf: لا أهمية كبيرة في الترتيب الأن …
    @بسام: أهلاً بك
    @محمد: فعلاً ونسيتها تماماً سأعدل التدوينة الأن لأضع الملاحظة


  6. aMINE: 19, أغسطس 2008 في 10:56 ص

    كل شيء واضح حتى الآن…

    لكن سؤال: هل يجب إعطاء ملف tmp الصلاحيات الكاملة عند رفعه على الخادم، بما أنه يضم ملفات الكاش، و هل يشكل ذلك أي خطر…


  7. نور: 19, أغسطس 2008 في 2:51 م

    سلام خالد
    الله يوفقك ويبارك بوقتك , إن شاء الله عن قريب رح تلاقيني متابع مستمر لكيك بي اش بي , ووقتها لحق على أسئلتي إذا بتلحق :)
    سلام


  8. أبوبكر: 19, أغسطس 2008 في 3:58 م

    السلام عليكم خالد
    جزاك الله خيرا على جهدك
    وجزاك الله خيرا على هذا الشرح الواضح
    أنا عموما عملت حاجة حاسس حتى الآن إنها فادتني جدا
    وجدت وصلة في صفحة التستيب لعمل مدونة بالكيك
    ووجدت شرحها في الـ Manual بتاع الكيك
    لم تأخذ مني أكثر من ساعة تقريبا ولكنها علمتني وبسهوله بعض الأساسيات التي أظنها ستساعدني على فهم ما تقوله هنا بوضوح
    نصيحتي لكل واحد أن يحاول أن يتابع طريقة العمل على المانوال ويعملها
    لمن سيجرب النصيحة لا تعمل في نفس الملف بتاع قائمة المهام أنشئ ملف جديد حتى لا تختلط عليك الأمور
    وشكرا


  9. خالد: 19, أغسطس 2008 في 10:00 م

    @aMINE: إلا إذا حددت مالك الملف بواسطة الأمر chown

    @نور: أهلاً بك ومبروك المدونة

    @أبو بكر: فعلاً عندما بدأت بالكيك قبل سنة بدأت بهذه المقالة فهي مفيدة جداً


  10. MEG: 4, سبتمبر 2008 في 1:13 ص

    عندي بعض الملاحظات على تعريب بعض المصطلحات

    و التي قد تختلف من مكان الى اخر مثل :

    توابع = دوال

    متحول = متغير

    لذلك افضل لو تستخدم المصطلح الاصلي :

    توابع = functions

    متحول = variable

    صنف = class

    صدقني افضل بكثير و اسهل و اسرع في الفهم :)


  11. خالد: 4, سبتمبر 2008 في 1:29 م

    هممم أفضل دائماً تلافي الكلمات الأجنبية واستخدام التعريب المرادف لها حتى لو كان صعب الفهم واللفظ! على كل سأحاول قدر المستطاع أن يكون المصطلح المعرب مفهوماً للجميع واستخدام المصطلحات التي عربها فريق عرب آيز


  12. عمر الدليمي: 8, سبتمبر 2008 في 5:56 ص

    السلام عليكم. أخي الحبيب لم لا تصحح هذه التدوينة. أنت تخبرنا أن فيها أخطاء،
    أشعر أن هناك خطوات ناقصة.


  13. عمر الدليمي: 8, سبتمبر 2008 في 6:13 ص

    أتراجع عن الرد الأخير :) . يبدو أنني لم أقرأ القسم المختص بقواعد البيانات – أعلم أنني أستطيع تصميمها بنفسي ولكنني كنت أريدها منك – ولم أكن أعلم أنك وضعتها، عندما راجعت موضوع الدورة وجدتها!
    شكراً :) .

    ربما تحتاج لوضع رابط لصفحة فهرس الدورة أسفل كل تدوينة من أجل عيون الكسالى السود ;) << أنا وغيري!


  14. خالد: 8, سبتمبر 2008 في 12:40 م

    هي موجودة في أعلى التدوينة أخي عمر!


  15. الجدول الثاني tasks | مدونة الويب 2.0: 3, أكتوبر 2008 في 5:46 ص

    [...] في بداية الأمر قمنا بمناقشة تحميل وتثبيت الكيك، بدأنا بأول متحكم وهو groups، وبعد ذلك أكملنا به وتناقشنا بمفهوم [...]


  16. محمد العاني: 4, أكتوبر 2008 في 8:24 م

    اخي خالد السلام عليكم وبالنسبة للفئة التي ابتدات بها فكيفية تسمية الجدول user_list مثلا هل تكون
    User_listController ؟

    واخيرا شكرا على المجهود


  17. خالد: 4, أكتوبر 2008 في 11:33 م

    أيضاً في تدوينة قادمة إن شاء الله. وبإذن الله غداً


  18. اصطلاحات الكيك | مدونة الويب 2.0: 5, أكتوبر 2008 في 4:46 ص

    [...] إحدى الجمل المشهورة لدى الخبازين (مطوري الكيك كما يحبوا أن يطلق عليهم): convention over configuration ويعنون به أنك إذا تقيدت باصطلاحات الكيك فالكيك لن يتعبك بالإعدادات كما تفعل باقي الأطر. هذه نقطة مهمة تقودنا للتساؤل عن اصطلاحات الكيك، ماهي وحالاتها المختلفة؟ شاهدنا خلال سلسلة تعلم الكيك العديد من هذه الاصطلاحات ولكن ربما اختلط على البعض وهناك أيضاً حالات لم نلتقي بها والشكر للأخ محمد العاني الذي سألني عنها. [...]


  19. خالد: 5, أكتوبر 2008 في 4:49 ص

    تعقيباً على سؤال الأخ محمد العاني:
    http://dev.holooli.com/2008/10/05/%D8%A7%D8%B5%D8%B7%D9%84%D8%A7%D8%AD%D8%A7%D8%AA-%D8%A7%D9%84%D9%83%D9%8A%D9%83/


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

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

  • الأكثر قراءة
  • الأحدث
  • الأرشيف
  • تعلم الكيك وتطوير المواقع بالبيت
  • تنظيم الوقت البرمجي
  • أفكار ومواقع ويب 2 شهيرة
  • مقدمة في CakePHP
  • لماذا غوغل شريرة!
  • الخطوط العربية
  • تصميم قاعدة البيانات
  • هل تريد أن تكسب 1000 دولار؟
  • مواقع عربية بالدروبال
  • موقع الجزيرة الجديد
    1. غوغل، جوجل، كوكل أو قوقل!
    2. دروبال تعلمه بالعربي
    3. تحديثات بالجملة
    4. صفحة 404
    5. مدونة الويب 2.0 في 2010
    6. عن غيوم
    7. وحدة Scrollable Content لدروبال
    8. موقع بدون قاعدة بيانات
    9. دول العالم باللغة العربية
    10. ثيم خفيفة للفايرفوكس
    1. أغسطس 2010
    2. مارس 2010
    3. فبراير 2010
    4. يناير 2010
    5. ديسمبر 2009
    6. سبتمبر 2009
    7. أغسطس 2009
    8. يوليو 2009
    9. يونيو 2009
    10. مايو 2009
    11. مارس 2009
    12. فبراير 2009
    13. يناير 2009
    14. ديسمبر 2008
    15. نوفمبر 2008
    16. أكتوبر 2008
    17. سبتمبر 2008
    18. أغسطس 2008
    19. يوليو 2008
    20. يونيو 2008
    • اشترك بآخر الأخبار RSS

      Feeds Counter

      أو

    • الاستبيان

      هل طورت أو ساعدت بتطوير مشروع مفتوح المصدر؟

      مشاهدة النتيجة

      Loading ... Loading ...
    • أوسمة

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

    حول المدونة

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

    عروض العمل

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

    تواصل معي

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