Namespace سازوکاری برای گروهبندی نامهای مرتبط و جلوگیری از برخورد نامهاست. در PHP میتوان دو کلاس با نام مشترک را در Namespaceهای متفاوت تعریف کرد.
در پروژه چه کاربردی دارد؟
برای مثال، App\Domain\Order\Service و App\Domain\Payment\Service میتوانند دو کلاس Service مستقل باشند که با نام کامل از هم تفکیک میشوند.
نمونه کد
namespace App\Domain\Orders;
class Service {}
Namespace با سطح دسترسی یا Encapsulation یکسان نیست. از فضای نام برای سازماندهی و رفع ابهام استفاده میشود.
Namespace در زبان و لینوکس
در PHP، Namespace گروهبندی نام کلاسها را انجام میدهد. در لینوکس Namespace بخشی از جداسازی منابع پردازشهاست که برای کانتینرها استفاده میشود. یکی بودن نام به معنی یکی بودن سازوکار نیست.