လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> [PHP scription တွင်သယံဇာတများဖြန့်ချိမှုကိုအကောင်အထည်ဖော်ရန် Register_ShutDown_Function ကိုအသုံးပြုရန်တိကျသောနည်းလမ်း]

[PHP scription တွင်သယံဇာတများဖြန့်ချိမှုကိုအကောင်အထည်ဖော်ရန် Register_ShutDown_Function ကိုအသုံးပြုရန်တိကျသောနည်းလမ်း]

gitbox 2025-06-19

PHP Development တွင်တည်ဆောက်ခြင်းတွင်အရင်းအမြစ်များကိုထုတ်ပြန်ခြင်းသည်အစီအစဉ်တည်ငြိမ်မှုနှင့်စွမ်းဆောင်ရည်ကိုသေချာစေရန်အဓိကချိတ်ဆက်မှုတစ်ခုဖြစ်သည်။ အထူးသဖြင့်ဇာတ်ညွှန်းဆက်သွယ်မှုများ, ဖိုင်တွဲများနှင့်အခြားအရင်းအမြစ်များကိုစနစ်တကျပိတ်ထားသည့်အခါမှတ်ဥာဏ်ယိုစိမ့်မှုနှင့်အခြားအလားအလာပြ problems နာများကိုရှောင်ရှားနိုင်သည့် Database ဆက်သွယ်မှုများကိုလည်းစနစ်တကျပိတ်ထားခြင်းဖြစ်သည်။ ဤဆောင်းပါးသည် PHP built-in function register_shutdown_roup_rofunction ကို ဖြည့်ဆည်းပေးမည်။


1 ။ Register_shutDown_Function ကဘာလဲ

Register_shutDown_Function က PHP မှပေးသော function တစ်ခုဖြစ်ပြီး script execution အဆုံးတွင်အလိုအလျောက်ခေါ်ဆိုသည့် callback function ကိုမှတ်ပုံတင်ရန်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ အမှားတစ်ခုကြောင့်ဇာတ်ညွှန်းသည်ပုံမှန်အားဖြင့်အဆုံးသတ်သည်ဖြစ်စေ,

 <?php
// ပိတ်ပွဲအပေါ်ကွပ်မျက်ခံရ callback function ကိုမှတ်ပုံတင်ပါ
register_shutdown_function(function() {
    echo "script လုပ်ဆောင်မှု၏အဆုံး,အရင်းအမြစ်များကိုဖြန့်ချိစတင်ပါ。\n";
});
?>

2 ။ ဇာတ်ညွှန်း၏အဆုံးတွင်အရင်းအမြစ်များကိုထုတ်လွှတ်ပေးရန်လိုအပ်ချက်

ဒေတာဘေ့စ်ဆက်သွယ်မှုများ, ဖိုင်လက်ကိုင်များ,

  • ဆာဗာအရင်းအမြစ်သုံးစွဲမှုတိုးလာခြင်းသည်စွမ်းဆောင်ရည်အပေါ်သက်ရောက်မှုရှိသည်။

  • ရှည်လျားသောပြေး scripts များသည်မှတ်ဉာဏ်ပေါက်ကြားမှုများကိုတွေ့ကြုံခံစားနိုင်သည်။

  • ထိုကဲ့သို့သောအရင်းအမြစ်ပြိုင်ပွဲနှင့်အကျပ်အတည်းကဲ့သို့သောခြွင်းချက်အခြေအနေများ။

ထို့ကြောင့်သက်ဆိုင်ရာအရင်းအမြစ်များကိုဇာတ်ညွှန်း၏အဆုံးတွင်အတိအလင်းထုတ်ဖော်ပြောဆိုရန်အကြံပြုသည်။


3 ။ တိကျသောဥပမာ - ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုဖြန့်ချိရန် Register_shutDown_Function ကို သုံးပါ

MySQLI ကို ဒေတာဘေ့စ်လုပ်ငန်းများအတွက်အသုံးပြုသည်ဆိုပါစို့။

 <?php
$mysqli = new mysqli("gitbox.net", "username", "password", "database");

if ($mysqli->connect_error) {
    die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}

// မှတ်ပုံတင်ခြင်းဇာတ်ညွှန်း၏အဆုံးတွင်ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုပိတ်ပါ
register_shutdown_function(function() use ($mysqli) {
    if ($mysqli->ping()) {
        $mysqli->close();
        echo "ဒေတာဘေ့စ်ဆက်သွယ်မှုပိတ်ထားသည်。\n";
    }
});

// အချို့သောမေးမြန်းချက်များကို execute
$result = $mysqli->query("SELECT * FROM users");
while ($row = $result->fetch_assoc()) {
    print_r($row);
}
?>

ဤဥပမာတွင်ကျွန်ုပ်တို့သည် database connection ကိုဇာတ်ညွှန်း၏အဆုံးတွင်ပိတ်ပြီးအရင်းအမြစ်စွန့်ပစ်ပစ္စည်းများကိုရှောင်ရှားရန် Regisn_shutDown_Function မှတစ်ဆင့်ခေါ်ဆိုမှု function ကိုမှတ်ပုံတင်ရန်မှတ်ပုံတင်ခြင်း။


4 ။ ပိုမိုကောင်းမွန်သောအရင်းအမြစ်ဖြန့်ချိမှုကိုရရှိရန်ခြွင်းချက်ကိုင်တွယ်ခြင်းနှင့်ပေါင်းစပ်ထားသည်

ရှုပ်ထွေးသော script များအရခြွင်းချက်များသို့မဟုတ်ဆိုးဝါးသောအမှားများဖြစ်ပေါ်နိုင်သည်။ Register_shutDown_Function က မူသယံဇာတများထုတ်ပြန်ခြင်းနှင့်ကွပ်မျက်မှုသေချာစေရန်ဤကဲ့သို့သောအခြေအနေမျိုးကိုဖမ်းယူနိုင်သည်။

 <?php
$fp = fopen("log.txt", "a");

// အနီးကပ် function ကိုမှတ်ပုံတင်ပါ,ဖိုင်လက်ကိုင်ကိုလွှတ်လိုက်ပါ
register_shutdown_function(function() use ($fp) {
    if (is_resource($fp)) {
        fclose($fp);
        echo "ဖိုင်လက်ကိုင်ပိတ်ထားသည်。\n";
    }
});

// ခြွင်းချက်များ Simulate
throw new Exception("Script လုပ်ဆောင်မှုချွင်းချက်!");

?>

ခြွင်းချက်တစ်ခုကြောင့် script ကိုပြတ်တောက်သွားလျှင်ပင်ဖိုင်အရင်းအမြစ်များကိုထုတ်လွှတ်ကြောင်းသေချာစေရန်ပိတ်ခြင်း function ကိုခေါ် ဦး မည်ဖြစ်သည်။


5 ။ အကျဉ်းချုပ်

  • Register_shutDown_Function_FUNTRICTRICTRICTRICTRICTRICTRICTICRICTIC က PHP script execution ရဲ့အဆုံးမှာ callback function တွေကိုကွပ်မျက်ဖို့အစွမ်းထက်တဲ့ကိရိယာတခုဖြစ်တယ်။

  • ပုံမှန်မဟုတ်သောသို့မဟုတ်ပုံမှန်မဟုတ်သောအခြေအနေများတွင်ဒေတာဘေ့စ်ဆက်သွယ်မှုများ, ဖိုင်လက်ကိုင်များစသည်တို့ကဲ့သို့သောအရင်းအမြစ်များကိုဖြန့်ချိစေသည်။

  • အမည်မသိလုပ်ဆောင်ချက်များနှင့်ပိတ်ခြင်းများကိုပေါင်းစပ်ခြင်း, အရင်းအမြစ်စီမံခန့်ခွဲမှုယုတ္တိဗေဒကိုအတိအကျအကောင်အထည်ဖော်နိုင်သည်။

  • ပြင်ပအရင်းအမြစ်စစ်ဆင်ရေးများပါ 0 င်သည့် PHP scripts အားလုံးသည်ဤယန္တရားကိုအရင်းအမြစ်ပြန်လည်အသုံးပြုမှုအတွက်ဤယန္တရားကိုအသုံးပြုရန်အကြံပြုသည်။