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