نقل قول: مشکل با دستور use در php
دوست عزیز شما باید ابتدا در رابطه با namespace ها تو php کمی مطالعه کنید تا بفهمید برای چی هست
namespace ها یه جور کدهای ما رو براساس دایرکتوری دسته بنده می کنند و use دقیقا برای همین هست که بگیم فلان فایل تو فلان دایرکتوری رو میخواهیم ازش استفاده کنیم
این که require استفاده نشده دلیلش هم این هست که از autoloading داره استفاده میشه که در پست صحنه از همون require استفاده میشه
و در سطح پیشرفته تر از composer استفاده میشه
نقل قول: مشکل با دستور use در php
همونجوری که دوستمون گفت مربوط میشه به namespace
نیم اسپیس یجورایی دسته بندی توابع و کلاس هاست تا از تداخل نام ها جلوگیری بشه
مثلا شما توی پروژت از 10 تا کتابخونه مختلف استفاده میکنی این 10 تا رو افراد مختلفی نوشتن در نتیجه ممکنه توابع یا کلاس های هم نام داشته باشن توشون
این هم نام بودن توابع باعث میشه کد شما اررور بده
مثلا دو تا تابع داری با نام action() که 2 کار مختلف میکنن اینا رو با هم بخای بارگزاری و استفاده کنی اررور میگیری چون همنامن
ولی وقتی نیم اسپیس داشته باشن دیگه اررور نمیده و تداخل ندارن و اینجوری باید صداشون کنی
namespace1\action();
namespace2\action();
اگه بخای بدون نیم اسپیس تابع یا کلاس رو فراخانی کنی میتونی با استفاده از use نام مستعار تعریف کنی براش
اول مینویسی
use namespace1\action
بعد تابع رو صدا میزنی
action()
اینجا با استفاده از use اعلام میکنی که تابع action که من دارم صدا میزنم همون namespace1\action هستش