18-04-1394، 05:32 ب.ظ
19-04-1394، 03:29 ق.ظ
namespace یا فضای نام برای دسته بندی کلاسها توی یه فضای جداگانه است تا بتونید به راحتی کلاسها رو گروهبندی کنید و از اسامی تکراری هم جلوگیری بشه. برای مثال، توی پروژه های تیمی بزرگ احتمال اینکه دو نفر، کلاسی با نام یکسان طراحی کنن زیاده. حالا اگه توی پروژه همزمان هر دو فایل حاوی این کلاسها ضمیمه بشه، خطای Cannot redeclare class تولید میشه و برنامه Crash میکنه. برای حل این مشکل میشه هرنفر کلاسهای خودش رو توی فضای نام دلخواه خودش قرار بده. اینطوری دیگه مشکلی پیش نمیاد. مثلاً یکنفر میتونه کلاسش رو اینطوری بسازه:
و یکنفر دیگه هم به این شکل کلاس خودش رو بسازه:
حالا اگه هر دو فایل رو ضمیمه کنید، خطا دریافت نمیکنید. تنها کاری که باید انجام بدین اینه که موقع ایجاد شئ، بگین از کدوم فضای نام میخواین استفاده کنین:
حتی اگه اصول PSR-0 و PSR-4 رو رعایت کنید، میتونید Autoloader خاصی بنویسید که کلاسها رو از توی پوشه های مختلف براساس فضای نامشون پیدا میکنه و بطور خودکار ضمیمه میکنه.
namespace ali; class Greeting { // ... }
و یکنفر دیگه هم به این شکل کلاس خودش رو بسازه:
namespace reza; class Greeting { // ... }
حالا اگه هر دو فایل رو ضمیمه کنید، خطا دریافت نمیکنید. تنها کاری که باید انجام بدین اینه که موقع ایجاد شئ، بگین از کدوم فضای نام میخواین استفاده کنین:
$aliGreeting = new aliGreeting; $rezaGreeting = new rezaGreeting;
حتی اگه اصول PSR-0 و PSR-4 رو رعایت کنید، میتونید Autoloader خاصی بنویسید که کلاسها رو از توی پوشه های مختلف براساس فضای نامشون پیدا میکنه و بطور خودکار ضمیمه میکنه.
19-04-1394، 01:39 ب.ظ
(19-04-1394، 03:29 ق.ظ)ADMIN نوشته: [ -> ]حتی اگه اصول PSR-0 و PSR-4 رو رعایت کنید،
در این مورد یه توضیحی میدید
مرسی
19-04-1394، 02:19 ب.ظ
به این سایت سر بزنید: http://php-fig.org و از سمت راست، PSR-0 و PSR-4 رو بخونید. کلاً قوانین PSR رو بخونید و توی کدنویسی رعایت کنید خیلی خوبه.