💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ Danial Rahimi
autoloading و namespace ها
امیر صالحی حل شده توسط امیر صالحی

سلام ، میخواستم بدونم آیا توی autoloader به صورت خودکار متوجه میشن که ساختار namespace ما با فولدربندی یکیه؟

سلام و احترام

شما طیق namespaceی که میدید مشخص میشه که دقیقا پوشه‌های شما با چه اسمی هستند و چه جورین

برای مثال namespace زیر:

namespace App\Http\Controllers\Admin\KYC;

کلاس داخل همچین فولدی هست:

- app
   - Http
   		- Controllers
   			- Admin
   				- KYC
   					. Class.php

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

 

توجه داشته باشید که توی composer.json کانفیگ autoloading به این صورت هستش:

   "autoload": {
        "psr-4": {
            "App": "app/",
        }
    },

توی کانفیگ بالا گفتیم که اول هر namespaceی کلمه App بود ینی اینکه داره به پوشه app اشاره میکنه

 

یه مثال دیگه هم ببینم:

 

namespace زیر:

namespace App\Exceptions;

داره به این پوشه اشاره میکنه:

- app
	- Exceptions

 

حالا اگه بخوایم از کلاس داخل اون دایرکتوری استفاده کنیم کافیه اسم کلاس رو هم موقع use کردن به نام namespace اضافه کنیم:

 

use App\Exceptions\Handler;

Handler در بالا نام کلاس است.

 

باز اگه سوالی بود بپرسید من در خدمتم، موفق باشید

 

بهترین پاسخ
امیر صالحی ۲۱ اسفند ۱۳۹۹، ۱۱:۳۱