آشنایی با کنترلر در ام وی سی


Controller این وظیفه را دارا است تا Request (ریکوئست یا درخواست) های کاربران را گرفته -خواه درخواست هایی از جنس GET خواه از جنس POST و غیره- و آن‌ها را مدیریت کند. به طور مثال، زمانی که شما در لیست آموزش‌های دوره ی آموزش اصول برنامه نویسی روی آموزش آشنایی با کنترلر در ام وی سی کلیک می کنید، ویوی صفحه ی لیست آموزش‌ها یک درخواست از جنس GET برای کنترلر ماژول آموزش‌های سایت ارسال می کند.

سپس کنترلر این وظیفه را دارا است تا درخواست را تجزیه و تحلیل کند و ببیند که کدام بخش از وب اپلیکیشن -یا بهتر بگوییم کدام مدل- مسئول رسیدگی به چنین درخواستی است. پس از مشخص شدن مدل هدف، درخواست در اختیارش قرار می‌گیرد و مدل هم دست به کار می شود. در نهایت، مدل Response (ریسپانس یا پاسخ) یی به ریکوئست دریافت شده می‌دهد که این ریسپانس هم می‌توان در قالب یک آبجکت باشد و هم در قالب یک آرایه ای از داده‌های مختلف و یا هر شکل دیگری از داده ها. سپس کنترلر ریسپانس را گرفته و تحویل ویو می‌دهد و این می‌شود که شما می‌توانید این آموزش را مطالعه کنید.

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

لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
00yusuf0102
00yusuf0102
سلام. آموزشتانو مطالعه میکنم و چیزای زیادی یادمیگیرم.
ممنونم
m.r.g
m.r.g
سلام
میشه مفهوم ماژول رو در اینجا توضیح بدید؟ مثلا اینجا که گفتید: "ویوی صفحه ی لیست آموزش‌ها یک درخواست از جنس GET برای کنترلر ماژول آموزش‌های سایت ارسال می کند"، منظور از ماژول چیه؟
علاوه بر این ممنون میشم به صورت کلی مفاهیم ماژول و پلاگین و ... رو با مثال های عملی توضیح بدید. مثلا جای ماژول داخل معماری mvc کجاست؟ یک ماژول چطوری نوشته میشه.

ممنون از سایت عالی و توجهتون
mohaghegh
mohaghegh
عبارت "تاحدودی" نیاز به اصلاح دارد.