هل CakePHP هو الحل؟

كنت أتحدث مع أحد الأصدقاء – علي – عن المواقع الإلكترونية التي قمنا ببرمجتها بإستخدام لغة الـ PHP، فعدد من المواقع التي عملنها بالـ PHP تأخرت في التسليم أو أنها لم ترى النور، وكان حديثنا عن أسباب عدم إكتمالها أو تأخرها، بالطبع كنا نقارنها بالمواقع التي عملنها بـالـ ASP.Net، فالمواقع التي نعملها بالـ ASP.Net غالباً ما تنتهي بسرعة أكبر، وبسهولة نسبية. فإتفقنا بأن السبب الرئيسي وراء ذلك هو التسهيلات الموجود في ASP.Net من خلال بيئة التطوير (IDE) وهي MS Visual Studio 2005,2008 وذلك حيث توجد القوالب الجاهزة للتعامل مع قواعد البيانات، وأيضاً الإبعاد بقدر الإمكان بين البرمجة (Business logic) والعرض (GUI)، بالمقابل كنا نستخدم للـ PHP الإسلوب الإعتيادي للبرمجة (دون أدوات جاهزة للتعامل مع قواعد البيانات) أيضاً شفرات الـ PHP، وHTML، وJavaScript كلها متواجدة في نفس الصفحة بإسلوب متعب للتطوير والتصحيح.مما جعلني أبحث عن أساليب أفضل للبرمجة بإستخدام لغة الـ PHP، لفت إنتباهي أحد إطارات العمل وهو CakePHP إذ هو إطار عمل مفتوح المصدر لتطوير للمواقع الإلكترونية (Web Application Framework) بإستخدام لغة الـ PHP.

CakePHP لدية العديد من الخواص التي أعجبتني والتي تجعل منه أحد الخيارات الجيدة، ومنها:
  1. مفتوح المصدر، تحت رخصة MIT.
  2. متوافق مع PHP 4 و5.
  3. إستخدام تركيبة الـ Model-view-controller وهي بإختصار تهدف إلى فصل المركبات الثلاث للبرامج (العرض، والتحكم، والبيانات)، للمزيد من المعلومات.
  4. العمليات الأساسية لتخاطب مع قواعد البيانات (CRUD) مبنية على شكل كائنات (ORM).
  5. Scaffolding وهو تركيبة جاهزة لعمل موقع من خلال قاعدة بيانات، فبمجرد عمل قواعد البيانات يكمن عمل موقع متكامل – من حيث التعامل من القواعد بيانات (CRUD) – (هذا ليس بغريب لمبرمجي Ruby on Rails).
  6. العناوين في CakePHP يمكل تخصيصها حسب رغبتك، وفي الأساس يكون كالآتي http://www.mysite.com/shop/buy/item3 سيقوم البرنامج الخاص بالتوجيه (Router) بمناداة الدالة buy() الموجودة في صنف (class) ShopController، وإعطاء الدالة buy(item3).
  7. قلة الإعدادات التي يجب عملها على خادم الويب Apache Web Server.
  8. وجود فريق عمل جيد لتعديل الأخطاء وتطوير CakePHP، ولدعم.
  9. أيضاً دعم لكثير من الإحتياجات للمبرمج مثل تسهلات للـ Ajax، وHTML، وForms، هذا وأيضاً توفر العديد من الأمور فيما يتعلق بالحماية.


هذا جعلني أرى أن بإستخدام CakePHP يمكن عمل مواقع إلكترونية في وقت قصير، وتكون هذه المواقع قابلة للتطوير والتوسع (وذلك بسبب الـ Modularity). ولكن لا زلت أرى أن هذا العمل الجبار إذا ما أرفق ببيئة تطويرية (IDE) جيدة فإنه سوف يحدث تغيراً كبيراُ في مجال البرمجة في الويب، وذلك لأن هنا العديد من المبرمجين للغة الـ PHP، فما بالك إذا تم تسهيل عمل هاؤلاء.

No related posts.

7 comments

  1. Anonymous

    مرحبا

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

    ان php لديها IDE جيد من الشركه الام
    Zend
    zend studio for php

  2. Hassan AL-Marhoon

    العفو أخوي.

    فعلاً كلامك أخوي صحيح، وهناك العديد من الـ IDEs، للغة الـ PHP. و Zend ويعتبر من أفضل الأنواع، له مزايا كثيرة لكن لا تصل إلى مزايا Cakephp، أو Symfony أو Drupal.

    Zend IDE قرأت عنه لكن لم أجربه بعد، أتمنى تجربته قريباً.

    على كل حال شكر على الرد.

  3. Ali Hassan Al Lawati

    موضوع ممتاز حسن الظاهر سالفة العشا منها فايدة :)

    طبعا انت عارف اتكلمنا قبل عن cack php

    و فكرت اتعلمه و بعدين تكاسلت (كالعادة) بس موضوعك يحمس

    زين لو تكمل عليه بدرس :) (أدري صاير اطالب بواجد امور ) بس هذي ميزتي صح :)

  4. Hassan AL-Marhoon

    شكراً علي،

    فعلاً أنا أريد أنزل موضوع أخر عن درس أول في الـ CakePHP.

    أعرفك تطلب واجد، لكن زين (:

  5. عبدالرحمن

    السلام عليكم
    مقدمة رائعة و متعوب عليها،
    حسب علمي القاصر ..هناك إيديتور جيد لعدة لغات
    من ضمنها الـ PHP و الروبي أون ريلز
    وهو aptana studio

    بالمناسبة
    هذه دورة جيدة حول الــ cakePHP

    http://dev.holooli.com/2008/08/03/%D8%AA%D8%B9%D9%84%D9%85-%D8%A7%D9%84%D9%83%D9%8A%D9%83-%D9%88%D8%AA%D8%B7%D9%88%D9%8A%D8%B1-%D8%A7%D9%84%D9%85%D9%88%D8%A7%D9%82%D8%B9-%D8%A8%D8%A7%D9%84%D8%A8%D9%8A%D8%AA/

    تحياتي

  6. Ali Hassan Al Lawati

    أخي عبد الرحمن شكرا جزيلا على تعليقك الكريم

    و تشكر على اللينك المفيد

    بالنسبة للإيديتور فهو ممتاز لم أجربه على الكيك بي اتش بي و لكنني استعمله في معظم اموري على الويب و مسهل علي واجد امور

  7. Wow, exciting read man. Thanks for sharing! However I’m having trouble with ur rss feed. Does anyone reis else have problems with the rss?

Leave a Reply