PDA

View Full Version : mvc قدیم یا mvc جدید؟



iranweb91
شنبه 05 مرداد 1392, 13:07 عصر
mvc قذیم خوبه یا جدید؟
در قدیم لایه نمایش فقط خاوی کدهای html بود که ساخت قالب را راحت میکرد اما در جدید حاوی کدهای php هم هست که ساخت قالب سخت تر میشه
در قدیم کنترلر رابط بین مدل و نمایش بود اما در جدید مدل رابط بین نمایش و کنترل هست

هر کی نظرات خود را بیان کنه و توضیحاتی ارائه کنه

wallfa
شنبه 05 مرداد 1392, 13:19 عصر
کلا با ام وی سی مخالفم . به نظرم بهتر تر هم میشه باشه ! حتی اگر ام وی سی نباشه !
ولی من جدید بیشتر می پسندم .

h.rezaee
شنبه 05 مرداد 1392, 13:30 عصر
سلام . دوست عزیز این بیان شما با mvc در تضاد هستش. چون ساختار سه لایه میاد و بخش کد php رو از view جدا می کند.برای جدا کردن بخش کد از template از template engine همچون smarty ، raintpl و .... استفاده می شود.

iranweb91
شنبه 05 مرداد 1392, 14:24 عصر
درورد بر دوستان که نظر دادند و ابهام را برطرف کردند.
منتظر نظرات بفیه دویتان هستیم تا ببینیم mvc قدیم خوبه یا جدید یا بدونه mvc?

MMSHFE
شنبه 05 مرداد 1392, 15:07 عصر
دوست عزیز، بطور کلی MVC (چه قدیم و چه جدید) برای این اومده که کار برنامه نویسی رو برای شما راحتتر کنه. بنابراین اگه خودش بخواد باعث ابهام بشه، ازش استفاده نکنید بهتره. اما درمورد دوست خوبمون که گفتن MVC اومده که PHP رو از View جدا کنه، باید بگم که خیر، این طرز تفکر صحیح نیست. هدف MVC اینه که بخشهای مختلف برنامه (تجزیه و تحلیل ورودیهای کاربر - اتصال به منابع فیزیکی نگهداری داده ها مثل دیتابیس و فایل و... - نمایش خروجی به کاربر) از هم تفکیک بشن و جدا کردن کدهای PHP از قالب وظیفه موتور قالب هست (که خودتون هم اشاره کردین) که خودش جزئی از View محسوب میشه.
اما درمورد تفاوت معماری قدیم و جدید، به این نکته باید توجه کنیم که در معماری جدید، بار برنامه بطور مناسبتری بین سه بخش Model و View و Controller توزیع میشه. در معماری قدیم، اکثر بار برنامه روی دوش Controller بود و درنتیجه خود Controller گاهی اینقدر پیچیده میشد که عملاً کارآیی MVC احساس نمیشد. در معماری جدید، به Controller ربطی نداره که داده ها برای نمایش در Browserهای مختلف چطور باید تنظیم بشن. چه مدل Escape کردن بر اساس نوع داده ها لازمه؟ همه اینها وظیفه View هست. در معماری قدیم، View بخش خیلی کوچکی از پروژه بود و Model یک بخش میانی که هرچند هم ممکن بود گاهاً بزرگ بشه، اما یکبار در طول پروژه نوشته میشد و بعد از اون دیگه ثابت بود ولی Controller بزرگترین بخش برنامه و دائماً درحال تغییر بود. از یک طرف باید مسئولیت پردازش اطلاعات دریافتی از کاربر و فراخوانی مدلهای مناسب جهت استخراج اطلاعات مرتبط با اون درخواستها رو برعهده داشت و ازطرف دیگه، مسئولیت تنظیم و خوراندن این اطلاعات به View برعهده کنترلر بود. در کنار همه اینها، تجزیه و تحلیل منطق برنامه هم بعهده همین بخش بود. بهرحال یکم زمان میبره که به معماری جدید عادت کنیم ولی قطعاً کارایی بهتری خواهد داشت.

iranweb91
شنبه 05 مرداد 1392, 15:22 عصر
با سپاس از استاد شهرکی
پس دیگه آموزشهای زیر را نخونیم که مربوط یه mvc قدیم هست درسته؟
http://barnamenevis.org/showthread.php?406782-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%AA%D8%B5%D9%88%DB%8C%D8%B1%DB%8C-MVC-%D8%A7%D8%B2-%D8%A7%D8%A8%D8%AA%D8%AF%D8%A7-%D8%AA%D8%A7-%D8%A7%D9%86%D8%AA%D9%87%D8%A7

MMSHFE
شنبه 05 مرداد 1392, 15:31 عصر
چرا بخونید. ولی سعی کنید توی پروژه های خودتون از معماری جدید استفاده کنید. آگاهی داشتن از معماری قدیم هم ایده بدی نیست. چون هنوز هم خیلی از سایتها از اون معماری استفاده میکنن و احتمالاً تا چند سال آینده هم همچنان شاهد اسکریپتهایی با معماری MVC قدیم خواهیم بود. بنابراین، حداقل برای اینکه کدهای دیگه رو بتونید به راحتی تجزیه و تحلیل کنید، اطلاع داشتن از معماری قدیم خیلی خوبه. اما همونطور که گفتم، بهتره خودتون توی مسیر قدیمی پا نگذارین.

iranweb91
شنبه 05 مرداد 1392, 15:38 عصر
تشکر.فیلم اموزشی معماری جدید میشه ارائه کنید یا لینک بدین؟

MMSHFE
یک شنبه 06 مرداد 1392, 08:15 صبح
حقیقتش فیلم آموزشی که به این روش جدید کار کرده باشه هنوز پیدا نکردم. بازم میگردم و اگه پیدا شد، میگذارم. موفق باشید.

iranweb91
دوشنبه 07 مرداد 1392, 15:37 عصر
تشکر از اقای شهرکی