(کپی شده از وبلاگ قبلی؛ نگارش شده در تاریخ ۱۰ اردیبهشت ۱۴۰۳)
سلام دوستان، امروز میخوایم بریم سراغ یه مفهوم جالب به اسم «رفلکشن».
جناب Reflection توی PHP قابلیتی هست که به شما امکان میده کلاسها، روابط، توابع، متدها و خصوصیات رو در زمان اجرا بررسی و دستکاری کنید. با رفلکشن میتونید ساختار داخلی یک شی رو تجزیه و تحلیل کنید و با اون تعامل کنید و حتی اون رو تغییر بدید.
رفلکشن یه API هست که از PHP 5 در دسترس قرار گرفت.
حالا بیاین یه جور دیگه بهش نگاه کنیم. فرض کنید یه عالمه کلاس و آبجکت توی دنیای PHP دارین. رفلکشن به شما این قدرت رو میده که به درون این کلاسها و آبجکتها سرک بکشید، ببینید چه متدهایی دارن، چه خصوصیاتی دارن و حتی میتونید متدهاشون رو صدا بزنید و ازشون بخواید کارهایی رو انجام بدن.
درواقع PHP یه سری کلاس از قبل آماده داره که باهاش میتونید این کارها رو انجام بدید؛ همش همینه و به همین سادگی...
نکته: خیلی از برنامهنویسها اصلا نمیدونن رفلکشن چیه (اگه تو میدونی، آفرین! :)) راستش معمولا لازم هم نمیشه! چون بیشتر توی پروژههای بزرگ استفاده میشه.
برای اطلاعات بیشتر به این لینک مراجعه کنید.
کلاسهای رفلکشن
با این کلاسها میتونین از رفلکشن بهره ببرین:
- ReflectionClass
- ReflectionObject
- ReflectionMethod
- ReflectionProperty
- ReflectionExtension
خب از اسمشون مشخصه هر کدوم برای چه کاری هستن.
با ما همراه باشید تا برای یکیش مثال بیاریم.
ReflectionClass
با این کلاس میتونیم دیتای اصلی یه کلاس رو بگیریم.
مثال گرفتن نام کلاس با رفلکشن:
$rf = new ReflectionClass("myclass");
echo "Class name: ".$rf->getName();
جمعبندی
رفلکشن یه ابزار فوقالعاده قدرتمند توی PHP هست که میتونه به شما کمک کنه تا کارهای خیلی جالبی انجام بدید.
فقط یادتون باشه که ازش درست استفاده کنید، وگرنه ممکنه به دردسر بیفتید!