رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
Namespaces چی هستش؟
#1
سلام.
Namespaces چی هستش و چه کاربردی دارد؟
پاسخ
تشکر شده توسط:
#2
namespace یا فضای نام برای دسته بندی کلاسها توی یه فضای جداگانه است تا بتونید به راحتی کلاسها رو گروهبندی کنید و از اسامی تکراری هم جلوگیری بشه. برای مثال، توی پروژه های تیمی بزرگ احتمال اینکه دو نفر، کلاسی با نام یکسان طراحی کنن زیاده. حالا اگه توی پروژه همزمان هر دو فایل حاوی این کلاسها ضمیمه بشه، خطای Cannot redeclare class تولید میشه و برنامه Crash میکنه. برای حل این مشکل میشه هرنفر کلاسهای خودش رو توی فضای نام دلخواه خودش قرار بده. اینطوری دیگه مشکلی پیش نمیاد. مثلاً یکنفر میتونه کلاسش رو اینطوری بسازه:
namespace ali;

class Greeting
{
    // ...
}

و یکنفر دیگه هم به این شکل کلاس خودش رو بسازه:
namespace reza;

class Greeting
{
    // ...
}

حالا اگه هر دو فایل رو ضمیمه کنید، خطا دریافت نمیکنید. تنها کاری که باید انجام بدین اینه که موقع ایجاد شئ، بگین از کدوم فضای نام میخواین استفاده کنین:
$aliGreeting = new ali\Greeting;
$rezaGreeting = new reza\Greeting;

حتی اگه اصول PSR-0 و PSR-4 رو رعایت کنید، میتونید Autoloader خاصی بنویسید که کلاسها رو از توی پوشه های مختلف براساس فضای نامشون پیدا میکنه و بطور خودکار ضمیمه میکنه.
پاسخ
تشکر شده توسط: abdollah110110 , saeed , sm_pakdel
#3
(19-04-1394، 03:29 ق.ظ)ADMIN نوشته: حتی اگه اصول PSR-0 و PSR-4 رو رعایت کنید،

در این مورد یه توضیحی میدید
مرسی
پاسخ
تشکر شده توسط:
#4
به این سایت سر بزنید: http://php-fig.org و از سمت راست، PSR-0 و PSR-4 رو بخونید. کلاً قوانین PSR رو بخونید و توی کدنویسی رعایت کنید خیلی خوبه.
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان