مقدمه‌ای بر معماری MVC در CakePHP

September 21, 2008 at 06:47 pm

همانطور که در پست قبل گقتم CakePHP از معماری MVC استفاده می کند. این معماری یه الگوی طراحی نرم‌افزاره که برنامه‌نویسی بر این مبنا، برنامه رو به سه بخش اصلی تقسیم می‌کنه:

1- Model مدل به داده برنامه اشاره دارد (معمولا جداول پایگاه داده). 2- View شاید هیچ لفظ فارسی جز خود این واژه نتونه جایگزین خوبی باشه اما این واژه را “نما” تعریف می‌کنم. نما در حقیقت یه رندر تصویری از داده مدل هست که در انتها به مرورگر کاربر ارسال میشه. 3- Controller کنترل کننده (کنترلر) درخواست‌هایی که توسط کلاینت ایجاد شده را بررسی و به یه مسیر صحیح هدایت می کند.

نمودار زیر چرخه معماری MVC را در CakePHP توضیح می ده:

A Basic MVC Request

برای مثال فرض کنید یه کلاینت بنام ریکاردو بر روی یک لینک (بالفرض خرید کیک که لینکی شبیه زیر داره) در صفحه اصلی برنامه کلیک کنه بنابراین درخواست از مرورگر وی به وب سرور منتقل می‌شه.

http://www.example.com/cakes/buy

در اینجا dispatcher آدرس درخواستی رو بررسی می‌کنه (cakes/buy/) و این درخواست رو به یک کنترلر صحیح هدایت می‌کند. کنترلر، منطق مشخص برنامه رو انجام می‌ده، برای مثال چک می کنه آیا ریکاردو تا حالا لاگین کرده یا نه. علاوه براین کنترلر بمنظور دستیابی به داده‌های برنامه از مدل ها استفاده می کنه. مدل ها معمولا نمایانگر جداول پایگاه داده هستند اما می تونن معرف ورودی‌های LDAP، فیدهای RSS یا فایل‌های روی سیستم هم باشند. بعنوان مثال در اینجا کنترلر یه مدل رو به کار می‌بره تا آخرین خرید ریکاردو رو از دیتابیس بکشه بیرون (به اصطلاح Fetch کنه). ادامه مطلب …

کار با CakePHP

September 18, 2008 at 01:12 am

بیشتر پروژه‌ها را تاجایی که امکان داره با CakePHP انجام میدم. ساختار MVC، معتبرسازی توکار، سفارشی کردن URL‌ها و انعطاف پذیری فوق العاده، دلایل عمده من برای انتخاب این فریم‌ورک PHP هستن. فکر میکنم کسانی که با Ruby on Rails کار کردن حرفمو تایید کنن.

منابع زیادی برای آموزش این فریم‌ورک روی وب هست. برای دو نسخه 1.1 و 1.2 که با هم تفاوت‌هایی دارند، بطور جداگانه راهنمای کاملی در سایت اصلی کیک پی‌اچ‌پی موجوده. قسمت مثال‌ها و بخصوص The Cake Blog Tutorial محبوب‌ترین قسمت این راهنما است. در این آموزش یاد میگیرید که چطور بر پایه این فریم‌ورک یه وبلاگ ساده بسازید.

هدفم از کیک پی‌اچ‌پی و راهنما گفتنش معرفی پست‌های James Fairhurst در این رابطه هست. حدود آوریل امسال James یه سری آموزش در رابطه با ایجاد یک کاتالوگ DVD با CakePHP‌ رو شروع کرد. این آموزش‌ شامل 12 قسمته که دو هفته قبل قسمت آخرش تموم شد. لیست این پست ها رو در زیر آوردم که انصافا‍ یکی از دیگری بهتره:

  • + Part 1: Setup of CakePHP and creation of the tables and models
    + Part 2: Creating the first controller and the corresponding views
    + Part 3: Creating two more controllers with the respective views
    + Part 4: File upload and introduction of jQuery
    + Part 5: Working with a HABTM association
    + Part 6: Adding authentication to the application
    + Part 7: Graphical design of the application
    + Part 8: Realizing the design with HTML and CSS
    + Part 9: Introduction to layouts and elements
    + Part 10: Defining the start page
    + Part 11: Using requestAction
    + Part 12: Finishing the application

فقط کافیه یه خورده زمان داشته باشید و البته اشتیاق برای یادگیری این فریم‌ورک. نتیجه‌ی نهایی آموزش بالا رو می‌تونید اینجا ببینید. سعی می‌کنم پست‌های آینده ام بیشتر در رابطه با توضیح ساختار MVC و آموزش CakePHP باشه.