🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ امیر رحمانی
اگر نیم اسپیس‌ها در کنترولر تغییر کند چطور کلاس هارو داینامیک فراخوانی کنیم؟
جامعه پی اچ پی ایجاد شده در ۳۱ اردیبهشت ۱۴۰۰

سلام اگر کنترولر‌های ما درون فولدر‌های خودشون باشن چطور کلاس هارو داینامیک فراخوانی کنیم همرا نیم اسپیس هاشون؟ چیزی مثل کامپوزر که خودش اوتومات نیم اسپیس هارو درون یک آرایه میریزه بعد هنگام صدا زدن چک میکنه.

سلام و احترام

وقتی شما توی کامپوزر کلاسی رو جا به جا میکنید شما در واقع namespace اون رو هم باید تغییر بدید وگرنه به خطا میخورید، حتما با تغییر یک کلاس به فولدر دیگه باید namespace اون رو هم تغییر بدید به شکل دستی یا خود IDE اون رو انجام میده

امیر صالحی ۰۱ خرداد ۱۴۰۰، ۱۷:۱۵

بله منظورم همینه تو همون پوشه کنترولر پوشه‌های تو در تو داشته باشیم خب الان  نیم اسپیس پایه درسته برا همه کنترولرا ست میشه ولی اگه بخوایم با همون نیم اسپیس پایه به کلاس دسترسی داشته باشیم که پیدا نمیشه کلاسهامون چون نیم اسپیس‌ها مسیر فایل مارو نشون میدن الان مثلا کنترولر‌های مربوط به محصول تو پوشه محصول باشن مثلا اینجوری

namespace App\Controllers\Product

و یه کنترولر دیگم تو یه پوشه دیگه باشه و نیم اسپیسش اینجوری باشه

namespace App\Controllers\Article

الان برای فراخونی کلاسهامون نمیشه فقط از نیم اسپیس پایه App\Controllers\ به تنهایی استفاده کرد چون اینجوری کلاسامون پیدا نمیشه تو روتر برای داینامیک کردن این بخش چه راه حلی وجود داره؟

امیر رحمانی ۰۲ خرداد ۱۴۰۰، ۱۱:۴۳

سلام و احترام

دو روش وجود داره

یک اینکه ما میتونیم روت‌ها رو اینطوری داشته باشیم:

Route::post('article/add', 'Admin\ArticleController@add');

ینی شما namespace رو هم همراه با نام کلاس پاس بدید

روش دوم

use App\Controllers\Admin\ArtilcesControllers;
Route::post('article/add', [ArtilcesControllers::class ,'add']);

روش دوم هم بیاییم به صورت آرایه هم کلاس رو پاس بدیم که از قبل namespace ش رو use کردیم و هم متد رو، هر کدوم فکر میکنید براتون جالبه رو میتونید توسعه بدید

 

امیر صالحی ۰۴ خرداد ۱۴۰۰، ۱۹:۰۸