PHP Refnefection API သည် Runtime တွင်အတန်းများ, နည်းစနစ်များ, ရောင်ပြန်ဟပ်မှုမှတစ်ဆင့်ကျွန်ုပ်တို့သည် Source Code ကိုကြည့်ခြင်းမပြုဘဲ PPP အစီအစဉ်များကိုခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်လည်ပတ်နိုင်သည်။ ၎င်းသည်ဖွံ့ဖြိုးရေးမူဘောင်များ, plug-in စနစ်များ, မှီခိုဆေးထိုးကွန်တိန်နာများနှင့်အခြားအခြေအနေများတွင်အလွန်လက်တွေ့ကျသည်။
ရောင်ပြန်ဟပ်မှု API သည်လူတန်းစားအဆောက်အအုံများကိုဖတ်နိုင်ရုံသာမက method ကိုနည်းလမ်းများသို့တက်ကြွသောခေါ်ဆိုမှုများကိုလည်းအထောက်အကူပြုနိုင်သည်။ ၎င်းသည် PHP ၏ပြောင်းလွယ်ပြင်လွယ်နှင့်ပမာဏကိုများစွာမြှင့်တင်ပေးသည်။
Refenclass အတန်းကိုသုံးပါ။
$reflector = new ReflectionClass('Foo');
ဘယ်မှာ 'foo' အတန်း၏အမည်ကိုဖြစ်ပါတယ်။ ဤအရာဝတ်ထုသည်အတန်း၏ဖွဲ့စည်းပုံသတင်းအချက်အလက်ကိုရယူရန်အသုံးပြုနိုင်သည်။
အတန်းထဲတွင်သတ်မှတ်ထားသောနည်းလမ်းများအားလုံးကို GetMethods Method မှတဆင့်ရယူနိုင်သည်။
$methods = $reflector->getMethods();
$ methods array ကိုဖြတ်သန်းခြင်းအားဖြင့်နည်းလမ်းတစ်ခုစီ၏အမည်, parametersces, access ခွင့်ပြုချက်များစသဖြင့်သင်အမည်ကိုကြည့်ရှုနိုင်သည်။
အလားတူပင် GetPropherties နည်းလမ်းကိုအတန်း၏ဂုဏ်သတ္တိများရရန်အသုံးပြုသည်။
$properties = $reflector->getProperties();
ဤနည်းလမ်းသည်အိမ်ခြံမြေဆိုင်ရာအသေးစိတ်အချက်အလက်များကိုဖတ်ရန်အသုံးပြုနိုင်သည့် ရောင်ပြန်ဟပ်ပီ ကိရိယာများကိုပြန်လည်ရောက်ရှိစေသည်။
တိကျသောနည်းလမ်းများကိုရယူရန်သင် ထင်ဟပ်မှုသည် အတန်းကိုသုံးနိုင်သည်။
$reflector = new ReflectionMethod('Foo', 'bar');
'foo' သည်အတန်းအစားအမည်နှင့် 'bar' ဖြစ်သည်။ ထင်ဟပ်သောအရာဝတ်ထုကိုဖန်တီးထားသောအရာဝတ်ထုကိုနည်းလမ်းကိုခွဲခြမ်းစိတ်ဖြာရန်အသုံးပြုနိုင်သည်။
ဤနည်းလမ်းကို Indoke Method ကို အသုံးပြု. ခေါ်ဆိုနိုင်သည်။
$result = $reflector->invoke($object, $args);
$ အရာဝတ်ထု သည်အတန်းဥပမာတစ်ခုဖြစ်ပြီး $ args သည် parameters များခင်းကျင်းသည်။ ဤနည်းလမ်းသည် Runtime တွင်တက်ကြွသောခေါ်ဆိုမှုများကိုထောက်ပံ့သည်။
ပုဂ္ဂလိက (သို့) ကာကွယ်ထားသောနည်းလမ်းများအတွက်၎င်းတို့ထံလက်လှမ်းမီမှုကို Setaccessess Method မှတဆင့်ပြုပြင်နိုင်သည်။
$reflector->setAccessible(true);
၎င်းသည်သင့်အားလက်လှမ်းမီနိုင်သောထိန်းချုပ်မှုနှင့်ခေါ်ဆိုမှုနည်းစနစ်များကိုတိုက်ရိုက်ရှောင်ရှားရန်ခွင့်ပြုထားသည်။
တိကျသောဂုဏ်သတ္တိများနှင့်ပတ်သက်သောသတင်းအချက်အလက်များကိုရယူရန် RefododityProperty class ကိုသုံးပါ။
$reflector = new ReflectionProperty('Foo', 'bar');
၎င်းသည်အတန်းတစ်ခု၏တိကျသောဂုဏ်သတ္တိများကိုရယူရန်သက်ဆိုင်သည်။
attribute တန်ဖိုးများကိုအောက်ပါနည်းလမ်းများဖြင့်ဖတ်။ ပြုပြင်နိုင်သည်။
$value = $reflector->getValue($object);
$reflector->setValue($object, $value);
attribute သည်အများပြည်သူ, ပုဂ္ဂလိကသို့မဟုတ်ကာကွယ်ထားသည်ဖြစ်စေ, ၎င်းကို ရောင်ပြန် ဟပ်မှုဖြင့်လည်ပတ်နိုင်သည်,
PHP Refnession API သည် devics များကိုတက်ကြွသောခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်ကုဒ်အဆောက်အအုံများကိုကိုင်တွယ်ရန်အစွမ်းထက်သောကိရိယာများဖြင့်ထောက်ပံ့ပေးသည်။ ၎င်းသည် debugging, စစ်ဆေးခြင်း, တည်ဆောက်ခြင်း, တည်ဆောက်ခြင်းသို့မဟုတ်တည်ဆောက်ခြင်းရှိမရှိအဓိကအခန်းကဏ် plays မှပါ 0 င်သည်။ ရောင်ပြန်ဟပ်မှုအသုံးပြုခြင်းကိုကျွမ်းကျင်မှုသည် PHP စီမံကိန်းများ၏ပြောင်းလွယ်ပြင်လွယ်မှုနှင့်အချောက်များကိုများစွာတိုးတက်စေနိုင်သည်။