فرق صدا زدن یک view در کنترلر و روت

پرسیده شده
فعالیت 930 روز پیش
دیده شده 414 بار
0

سلام خسته نباشید

 

ببخشید فرق اینکه ما یک view رو در route صدا بزنیم یا در کنترلر چی هست ؟ جایی که نیازی به فانشکنی نداریم و فقط view رو میخوایم .

  فرق خاصی هست براش یا قانونی که مثلا بهتره در کنترلر صدا بزنیم ؟

فایل پیوست

هادی قاسمی
هادی قاسمی

4 مهر 00

1
حذف شده

سلام.

بصورت کلی هیچ تفاوتی وجود ندارد جز لاجیک و منطق برنامه!

بنابراین اگر میخواهید ساختار و منطق MVC رو حفظ کنید بهتره از کنترلر استفاده کنید وگرنه اگر تستی میخواهید انجام دهید میتونید بصورت callback در خود Routes بیاریدش.

مورد دیگه، به این توجه داشته باشید که اگر بجای کنترلر از callback ها استفاده کنید، وقتی روت ها زیاد شن و مخصوصن پروژه بزرگ شه دیگه بی نظمی و شلوغ شدن کدها اتفاق میوفته پس حتی الامکان از کنترلرها استفاده کنید.

 

در مورد کش هم، بخودیه خود نه کنترلر کش میکنه و نه Routes. بنابراین تفاوتی نمیکند که view رو کجا call کنید.(منظورم بین controller و routes)

فایل پیوست

محسن موحد

توسط

محسن موحد

8 مهر 00

حذف شده
سلام ممنون از راهنماییتون جواب سوالمو گرفتم . ولی در ارتباط با اینکه میگید کلا کش نمیکنه ، توی همین پروژه وقتی قصد داشتم اسم یکی از متد ها رو در فایل route عوض کنم ، تغییرات اعمال نمیشد و حتی وقتی روت ها رو کلا پاک میکردم ارور 404 نمیومد . وقتی سرچ کردم ، علتش کش شدن روت ها بود که با دستور : php artisan route:clear درست شد .
هادی قاسمی

8 مهر 00

حذف شده
سلام. در مورد ویو گفتم که کش کردنش ارتباطی با روت و کنترلر نداره.
محسن موحد

8 مهر 00

حذف شده
اما کامندی که اوردید، مربوط به کش خود روت هاست.
محسن موحد

8 مهر 00

حذف شده
کش روت هم به منظور کم کردن مدت زمان مسیریابی استفاده میشه.
محسن موحد

8 مهر 00

حذف شده
مثلا روت ها که کش شدند، فایل ویویی که استفاده کردید (داخل یک روت) رو پاک کنید یا تغییر نام بدید یا محتوای داخل فایل ویو را تغییر بدید، میبینید نتیجه تغییر میکند.
محسن موحد

8 مهر 00

حذف شده
اهان درسته فهمیدم . خوبه مطرح کردم داشتم اشتباه میزدم . ممنون :)
هادی قاسمی

8 مهر 00

0
حذف شده

سلام

 

معمولا اگر تنها هدف کنترلر نمایش یک ویوو خاص باشه و نه بیشتر، بهتره که شما در فایل route مستقیم view رو برگردونید 

اما اگر تابع یا عملیات خاصی باید روی داده‌ها صورت بگیره خب دیگه این روش اصلا درست نیست.

 

* هرچند در نظر داشته باشید که این موارد بیشتر شبیه قانون‌های نانوشته است و ممکن فردی دوست داشته برای تمیز و یک دست شدن فایل route همه کدها و حتی برگردوندن یک ویوو ساده رو هم توی کنترلر بنویسه. پس متناسب با شرایطی که مناسب میدونید، تصمیم بگیرید

فایل پیوست

رضا *

توسط

رضا *

5 مهر 00

حذف شده
ممنون بابت راهنمایی . بیشتر مد نظرم این بود آیا که قانون هایی ( چه اصول چه نانوشته ) برای تمیزی کنترلر وجود داره یا نه ، که مثلا هر چه تعداد متد های کنترلر کمتر باشه بهتره . یا از اون طرف قانونی برای تمیزی route ها باشه که مثلا ، بهتره در route فانکشن صدا زده نشه .
هادی قاسمی

5 مهر 00

0
حذف شده

سلام و احترام

یکی از دلایلی بهتون پیشنهاد میدم تا از طریق کنترلر return کنید اینکه viewتون  کش میشه ولی اگه مستقیم از همون روت return کنید کش نمیشه و باعث کندی میشه (البته که میشه روت ها رو هم کش کرد)

فایل پیوست

امیر صالحی

توسط

امیر صالحی

6 مهر 00

حذف شده
سلام خسته نباشید . دلیل دیگری نداره پس ؟
هادی قاسمی

8 مهر 00

حذف شده
سلام. این حرف اشتباهه!
محسن موحد

8 مهر 00

حذف شده
https://stackoverflow.com/questions/60360116/laravel-return-view-from-controller-vs-directly-from-route
امیر صالحی

9 مهر 00

حذف شده
ببینید، من چنتا نکته اول بگم بعد این لینکی که گذاشتیو میگم چی گفته و شما چی برداشت کردی
محسن موحد

10 مهر 00

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

10 مهر 00

حذف شده
اما در مورد پاسخی که اوردی و لینکی که گذاشتی: شما در مورد کش نشدن VIEW صحبت کردی ولی داخل این لینک از Closure استفاده شده و ارتباطی به کش شدن VIEW نداره.
محسن موحد

10 مهر 00

حذف شده
میگه توو راه اولی، Route همراه با Closure باشه (Route) کش نمیشه
محسن موحد

10 مهر 00

حذف شده
پس در مورد route داره صحبت میکنه نه view. مطلب بعدی این موضوعی که داره مطرح میکنه مال laravel7 هست، لینکش رو ببینید:https://laravel.com/docs/7.x/controllers#route-caching
محسن موحد

10 مهر 00

حذف شده
ولی الان روی لاراول8 این مشکل برطرف شده و روت هم کش میشه:https://laravel.com/docs/8.x/routing#route-caching
محسن موحد

10 مهر 00

حذف شده
بنابراین در لاراول8 مشکل کش روت هم وجود نداره.
محسن موحد

10 مهر 00

حذف شده
مورد آخر، این موضوع رو راحت میشه چک کرد، یک ویو داخل روت برگردونید یک ویو داخل کنترلر، ببینید اون ویو اصلا کش میشه یا نه...موفق باشید.
محسن موحد

10 مهر 00

حذف شده
پس برداشت بنده اشتباه بوده، ممنون ازتون آقای موحد
امیر صالحی

11 مهر 00