PDA

View Full Version : چرا دو مدل mvc



charcharkh
دوشنبه 09 فروردین 1395, 06:22 صبح
سلام به همه اساتید و دوستان گرامی سال نو مبارک

بنده در درک mvc یکم به مشکل خوردم . ببنید بعضی جاها میگن ابتدا درخواست به کنترلر میره میدش به مدل مدل جواب رو آماده میکنه میده به کنترلر و سپس کنترلر میده به ویو . و به کاربر نمایش داده میشه

اما

در بعضی آموزشهای دیگه میکن ابتدا درخواست میره به کنترلر بعد میدش به مدل ، سپس مدل جواب رو میده به ویو

حالا کدوم درسته یا کدام بهتر هستش ؟ یا نه من بد متوجه شدم ؟!!!!

لطفا راهنمایی بفرمایید

این هم عکسهاش
139752139753

و در آخر اینکه کار index.php این وسط چی هست ؟

ممنون

charcharkh
دوشنبه 09 فروردین 1395, 09:31 صبح
27 با دیده شده ولی دریغ از یک راهنمایی خشک وخالی :گریه:

mohamadali1374
سه شنبه 10 فروردین 1395, 04:24 صبح
سلام
وقتی کاربر یه صفحه رو درخواست میکنه اول این درخواست به کنترلر ارجاع داده میشه :

1- حالا اگر کاربر نیاز به انجام عملیات در دیتابیس داشته باشه ( مثلا بخواد لیست تمام کاربران سایت رو ببینه) خوب باید به دیتابیس روجوع کرد و لیست رو از دیتابیس بیرون کشید. این کار در مدل انجام میشه یعنی کار دسترسی به دیتابیس و انجام عملیات روی اون رو رو مدل انجام میده.

2- در صورتی که کاربر نیازی به دیتابیس نداشته باشه اصلا مدل نیازی نیست.

حالا اگه حالت 1 اتفاق بیافته خوب توی همون کنترلر یه ارجاع به مدل داده میشه و اطلاعات مورد نیاز از مدل گرفته میشه و سپس این کنترلر هست که اطلاعات رو به ویو انتقال میده و ویو رو بارگذاری میکنه.

و اگه حالت 2 هم اتفاق بیافته باز این کنترلر هست که ویو رو بارگذاری میکنه

index.php : این فایل در سیستم های mvc کار لود کردن توابع اولیه مورد نیاز رو برعهده داره .

مهرداد سیف زاده
سه شنبه 10 فروردین 1395, 11:44 صبح
این عکسهایی که گذاشتید منبعش کجاست. متاسفانه زیادند این مورد بی سوادی‌ها و هر کسی در هر آموزشی یه تصویری ساخته و جدای از اصول اصلی داره توضیح میده. همچنین بعضی تصاویر مربوط به فریم ورک خاصی هستن که در اون جزيیات اجرای mvc رو توضیح داده.
ولی بهترین منبع wikipedia هست
https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

همچنین همیشه لازم نیست به مدل ارسال بشه. چون مدل سطح داده هست. شاید درخواست شما در همون کنترلر هندل بشه و جپاب به شما داده بشه و اصلا کلاسهای model فراخوانی نشه
همچنین mvc محدود به این نیست که حتما باید درخواست در کنترلر گرفته بشه و بعد بره به مدل و بعد بره view. شما میتونید درخواست رو بگیرید و view رو فراخوانی کنید برای اجرا و نمایس و بعد در فایلهای view کلاسهای مدل رو فراخوانی و به دیتابیس متصل بشید. هر چند اگر کسی این کار رو انجام بده بعدا خودش به مشکل برمیخوره و ساختار برنامه زیر سوال میره ولی هیچ محدودیتی در محل فراخوانی کلاسها نیست. مثلا در Yii شما آزادید در هر کجا هستید به کلاسهای مدل دسترسی داشته باشید.

در مورد درک مفهوم mvc بهتره دست به کد بشید و تا یه نمونه عملی انجام ندید ذهنیت پیدا نمیکنید.

charcharkh
چهارشنبه 11 فروردین 1395, 06:42 صبح
سلام خیلی ممنونم آقای سیف زاده عزیز

یه منبع خوب پیدا کردم که خیلی قشنگ توضیح داده فکر کنم خوب توضیح داده

http://php-html.net/tutorials/model-view-controller-in-php/

139782
بله باید بزودی دست بکار بشم سایت دارم همون رو با mvc بایست بازنویسی کنم

desatir7316
چهارشنبه 11 فروردین 1395, 20:32 عصر
والا بی سوادی که زیاده، من یه آموزش CI دانلود کردم طرف خیلی خودشو ضایع کرده بود ولی چه میشه کرد

اما در کل کنترلر رو یه چیزی واسط بین مدل و ویو در نظر بگیر