آشنایی با نام مستعار PHP – انجمن DEV

شاید ندانید که PHP به طرق مختلف اجازه ایجاد نام مستعار را می دهد.
چرا از نام مستعار کلاس استفاده می کنیم؟
class_alias
بسیار سرراست است:
class MyClass {}
class_alias('MyClass', 'MyAlias');
$obj = new MyAlias();
منبع: PHP doc – class-alias
می توانید از آن برای مدیریت چندین نسخه از یک برنامه و مدیریت منسوخ شدن استفاده کنید.
اگر از یک کتابخانه نگهداری میکنید و میخواهید فضاهای نام را تغییر دهید یا کل قسمتهای کد را تغییر دهید، میتوانید از تغییرات بد شکست جلوگیری کنید.
اینها قطعا تنها موارد استفاده نیستند، اما ممکن است به آن نیاز داشته باشید.
class_alias
در مقابل. use
واردات کمی متفاوت است و به آن متکی است use
کلمه کلیدی:
use MyClass as AnotherClassName;
use function myFunction as myFunctionAlias;
با ساختارهای مختلفی مانند ثابت ها، توابع، کلاس ها، رابط ها، صفات، enums و فضاهای نام کار می کند.
منبع: PHP doc – importing
این یک ویژگی عالی است که گاهی اوقات باعث خوانایی بهتر می شود و از برخورد بد جلوگیری می کند.
نام مستعار داخلی
برخی از توابع PHP را می توان با چندین نام فراخوانی کرد. این لیست است.
دلیل اصلی سازگاری با عقب است و تیم اصلی از استفاده مشابه در اسکریپت های سفارشی جلوگیری می کند، اما گاهی اوقات ضروری است.
هشدار بزرگ و چند هشدار
نام مستعار می تواند راحت باشد، اما باید به قدری از آنها استفاده کرد. در غیر این صورت، ممکن است مشکلات بیشتری نسبت به حل آن ایجاد کند (خوانایی کمتر، سردرگمی).
اگر واردات را با use
کلمه کلیدی، مراقب باشید، به خصوص اگر شامل فایل های دیگر است.
این فایلها واردات والد را بهطور خودکار به ارث نمیبرند، که اگر بخواهید برخی از برنامههای کاربردی را که در اسکریپت والد خود وارد کردهاید فراخوانی کنید، میتواند منجر به خطاهای مرگبار شود.
این یک مشکل معمولی است که ممکن است برای حل آن مشکل داشته باشید، بنابراین از آن قانون آگاه باشید.
آیا می توانیم یک متغیر مستعار کنیم؟
بله، و به آن مرجع می گویند:
$a = "freeze";
$b = &$a;
منبع: PHP doc – مراجع توضیح داده شده است
را &
نماد برای ایجاد صریح چنین مرجعی استفاده می شود.
توجه: توجه داشته باشید که به دلیل نحوه ذخیره اشیاء در PHP، دقیقاً برای این نوع خاص یکسان نیست.