آشنایی با عملکرد مدل، ویو و کنترلر در وب اپلیکیشنی که بر پایه ی الگوی معماری MVC نوشته شده باشد
فرض کنیم که قصد داریم یک فروشگاه آنلاین کتاب طراحی کنیم. کاربران در این فروشگاه آنلاین خواهند توانست کارهایی همچون مشاهده ی کتاب ها، ثبت نام در سایت، افزودن کتاب به سبد خرید، حذف محصول از سبد خرید و پرداخت وجه انجام دهند. در ادامه، قصد داریم بینیم وقتی کاربری روی یک دسته بندی -مثلا دسته بندی کتابهای شعر و ادبیات- کلیک می کند، چه اتفاقی رخ می دهد.
پیش از هر چیز، ما نیاز به کنترلری داریم تا کلیه ی Action (اکشن یا کار) های مرتبط با کتابها را انجام دهد که از آن جمله میتوان به نمایش، افزودن به سبد خرید و … اشاره کرد. این کنترلر فرضی را BooksController.php می نامیم. علاوه بر این، نیاز به یک مدل هم خواهیم داشت مثلاً تحت عنوان BookModel.php تا کلیه ی کارهای مرتبط با این فروشگاه آنلاین مثل حذف و اضافه نمودن کتاب توسط ادمین سایت، ویرایش کتاب، افزودن نظر برای کتابها و … را هندل کند. در نهایت هم نیازی به ویو -البته بهتر است بگوییم یکسری ویوهای مختلف- داریم تا صفحات مختلف سایت مثل صفحه ی اصلی، صفحه ی دسته بندی محصولات، صفحه اختصاصی هر محصول، صفحه ی سبد خرید، صفحه ی ادمین پنل و … را نمایش دهد. تصویر زیر نشان میدهد که ریکوئست کاربر برای نمایش یک کتاب چگونه مدیریت می شود:
اکشن یا بهتر است بگوییم تابعی مثلا تحت عنوان ()categoryAction در BooksController.php در گام 1 ریکوئست کاربر را در قالب HTTP GET یا HTTP POST دریافت می کند. این اکشن کنترلر ریکوئست را بررسی کرده و می سنجد ببیند که چه پارامتری داخل آن وجود دارد (این پارامتر تعیین کننده شناسه ی یک دسته بندی خاص هستند که کاربر روی آن کلیک کرده تا مشاهده کند که در اینجا دسته بندی شعر و ادبیات است) سپس مدل BookModel.php را فراخوانی کرده و از آن میخواهد تا لیست کتابهای مثلاً شعر و ادبیات را اصطلاحاً return کند یا «باز گرداند» که این اتفاق در مرحله ی 2 صورت می پذیرد.
مدل هم که مسئول گرفتن دیتای مورد نیاز از دیتابیس است، در صورت نیاز فیلترهای ضروری را روی پارامتر دریافتی از اکشن داخل کنترلر اعمال کرده (مرحله ی 3) و در مرحله ی 4 دیتای دربرگیرنده ی لیست کتابهای شعر و ادبیات را به اکشن ()categoryAction در کنترلر باز می گرداند.
در گام 5 هم کنترلر ویوی مناسب برای نمایش دسته بندی کتابها را مورد استفاده قرار داده، دادهها را در اختیارش میگذارد در گام 6 صفحه ی اچ تی ام ال درست شده در نهایت در گام 7 در معرض دید کاربر قرار خواهد گرفت. جالب است بدانیم که اگر ریکوئست از جانب یک موبایل برای کنترلر ارسال شده بود (به عبارتی کاربری با موبایل وارد فروشگاه آنلاین ما شده بود)، کنترلر این وظیفه را دارا است تا -در صورت موجود بودن- ویوی مخصوص دستگاههای موبایل را مورد استفاده قرار دهد.