PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင် Code ၏လုံခြုံရေးနှင့်တည်ငြိမ်မှုသည်အမြဲတမ်းထိပ်တန်း ဦး စားပေးဖြစ်သည်။ အထူးသဖြင့်သင်တန်းများသို့မဟုတ်အကဲဖြတ်ခြင်းအရာဝတ်ထုအမျိုးအစားများကိုဆက်လက်ဖွင့်ခြင်းသို့မဟုတ်တရားစီရင်ခြင်းများကိုတရားစီရင်ခြင်း, ဤဆောင်းပါးသည် is_a () နှင့် class_exists () လုပ်ဆောင်ချက်များကိုအသုံးပြုခြင်းအားဖြင့်ကုဒ်၏လုံခြုံရေးကိုမည်သို့သေချာအောင်လုပ်ရမည်ကိုအာရုံစိုက်ပါလိမ့်မည်။
class_exists () ကို သတ်မှတ်ထားသောအတန်းသတ်မှတ်ထားသည့်အတန်းကိုသတ်မှတ်ရန်အသုံးပြုသည်။ ၎င်း၏အခြေခံ syntax ဖြစ်ပါတယ်:
class_exists(string $class_name, bool $autoload = true): bool
$ class_name : ရှာဖွေတွေ့ရှိခံရဖို့အတန်းအမည်။
$ autoload : autooloading ယန္တရားကိုခေါ်ရန်, ပုံမှန် စစ်မှန်တဲ့ ။
Class_exists () ကို အသုံးပြုခြင်း () ကိုအသုံးပြုခြင်းသည်သင်၏ကုဒ်တွင်မတည်ရှိသည့်အတန်းများကိုတိုက်ရိုက်အသုံးချခြင်းကိုတားဆီးနိုင်သည်။ ထို့ကြောင့်ဆိုးဝါးသောအမှားများကိုပစ်ချခြင်းမှကာကွယ်နိုင်သည်။
is_a () သည်အရာဝတ်ထုတစ်ခုသည်လူတန်းစားတစ်ခုသို့မဟုတ်၎င်း၏ subclass ၏ဥပမာတစ်ခုရှိမရှိဆုံးဖြတ်ရန်အသုံးပြုသည်။ Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
is_a(object|string $object_or_class, string $class_name, bool $allow_string = false): bool
$ Office_or_Class : စစ်ဆေးရန်အရာဝတ်ထုသို့မဟုတ်အတန်းအစားအမည်။
$ class_name : ပစ်မှတ်အတန်းအစားအမည်။
$ Allow_String : အကယ်. မှန်ကန် ပါကပထမ ဦး ဆုံး parameter သည် string တစ်ခုဖြစ်ခွင့်ပြုသည်။
is_a () သည် အရာဝတ်ထုအမျိုးအစားကိုဆုံးဖြတ်ရန်နှင့်ပစ်မှတ်မဟုတ်သောအရာဝတ်ထုများ၏မှားယွင်းစွာခေါ်ဆိုခြင်းနည်းလမ်းများသို့မဟုတ်ဂုဏ်သတ္တိများကိုရှောင်ရှားရန်အသုံးပြုနိုင်သည်။
is_a () ကို အသုံးပြုခြင်းသည်တစ်ခါတစ်ရံအမှားများကိုဖြစ်ပေါ်စေသည်။ Class_Exists () တစ်ခုတည်းသောအသုံးပြုမှုကိုသာအသုံးပြုခြင်းသည်အတန်းအစားတည်ရှိမသင့်ကိုသာဆုံးဖြတ်နိုင်သော်လည်းအရာဝတ်ထုသည်အတန်းအစား၏ဥပမာတစ်ခုရှိမရှိအာမခံချက်မရှိပါ။
ထို့ကြောင့်ကျွန်ုပ်တို့သည်အတန်းအစားရှိကြောင်းအတည်ပြုရန် class_exists () ကို အသုံးပြုရန် လိုအပ်သည်။ ၎င်းသည်အတန်းမတည်ရှိခြင်းကြောင့်ဖြစ်ပေါ်လာသောအမှားများနှင့် undefined အပြုအမူများကိုရှောင်ရှားနိုင်ပြီး Code အားကြံ့ခိုင်မှုကိုတိုးတက်စေသည်။
အရာဝတ်ထုတစ်ခုသည်အတန်းတစ်ခု၏ပိုင်ဆိုင်မှုရှိ, မရှိကိုမည်သို့လုံခြုံစွာဆုံးဖြတ်ရမည်ကိုပြသသောလက်တွေ့ကျသောလျှောက်လွှာဥပမာတစ်ခုမှာ -
<?php
$className = 'SomeClass';
$object = getSomeObject(); // function ကိုအရာဝတ်ထုတစ်ခုသို့ပြန်ပို့သည်ဆိုပါစို့null
if (class_exists($className, true)) {
if (is_a($object, $className)) {
echo "အရာဝတ်ထုဖြစ်ပါတယ် {$className} ရာထူးဥပမာ。";
} else {
echo "အရာဝတ်ထုမဟုတ်ပါဘူး {$className} ရာထူးဥပမာ。";
}
} else {
echo "အမျိုးအစား {$className} မတည်ရှိပါဘူး,无法判断对象အမျိုးအစား型。";
}
တခါတရံတွင်ကျွန်ုပ်တို့သည် apis သို့မဟုတ် loading အရင်းအမြစ်များကဲ့သို့သောကျွန်ုပ်တို့၏ code ရှိ URLs များကိုလုပ်ဆောင်ရန်လိုအပ်သည်။ ဤအချိန်တွင်လုံခြုံရေးအကြောင်းပြချက်များအတွက်, URL ပိုင်ဆိုင်သော domain name သည်အန္တရာယ်ရှိသော URL များဖြင့်တိုက်ခိုက်ခြင်းကိုရှောင်ရှားရန်ဒိုမိန်းအမည်ကိုအတည်ပြုသင့်သည်။
ဥပမာအားဖြင့်, အောက်ပါကုဒ်များတွင်ဆေးထိုးအန္တရာယ်များကိုတားဆီးရန် URL ဒိုမိန်းအမည်အားလုံးနှင့်အတူ M66.net နှင့်အတူ M66.net ဖြင့်အစားထိုးသည်။
<?php
$url = 'https://m66.net/api/getData';
if (filter_var($url, FILTER_VALIDATE_URL)) {
$parsedUrl = parse_url($url);
if ($parsedUrl['host'] === 'm66.net') {
// လုံခြုံခေါ်ဆိုမှု interface ကို
$response = file_get_contents($url);
echo $response;
} else {
echo "ဒိုမိန်းလက်လှမ်းမီခွင့်မပြုပါ。";
}
} else {
echo "အားမရှိသောURL。";
}
Class_Exists () နှင့် is_a () ကိုပေါင်းစပ်ခြင်းအားဖြင့်၎င်းသည်အတန်း၏မတည်ရှိမှုမရှိသောလုံခြုံရေးအန္တရာယ်များကိုထိရောက်စွာရှောင်ရှားနိုင်သည်။ ပြင်ပအရင်းအမြစ် urls နှင့်ပတ်သက်လာလျှင် UNITION Domain Name Verification သည် URL ဆေးထိုးခြင်းနှင့် phishing တိုက်ခိုက်မှုများကိုကာကွယ်ရန်ကောင်းသောအလေ့အကျင့်တစ်ခုဖြစ်သည်။
ဤနည်းလမ်းများသည် developer များပိုမိုလုံခြုံပြီးတည်ငြိမ်သော PHP applications များကိုတည်ဆောက်ရန်ကူညီရန်တစ် ဦး ကိုတစ် ဦး ဖြည့်ဆည်းပေးသည်။