PHP သည် FATAL အဆင့်အမှားများကိုဖမ်းမိသည်
တရားဝင်ကိုးကား
တရားဝင်ဝက်ဘ်ဆိုက် set_error_handler register_shutdown_functionအမှားအယွင်းတွေအားလုံးကိုဘယ်လိုဖမ်းမိမလဲ
set_error_handler ကိုအမှားအယွင်းများအများဆုံးဖမ်းယူရန်အသုံးပြုနိုင်သည်။ PHP သည်စစ်ဆင်ရေးကိုတိုက်ရိုက်အဆုံးသတ်သောကြောင့် FATAL အဆင့်အမှားတစ်ခုကြုံတွေ့ရသောအခါ set_error_handler မှသတ်မှတ်ထားသောပြန်ခေါ် function ကိုအစပျိုး။ မရပါ။ ဤအချိန်တွင်ပရိုဂရမ်ရပ်စဲမှုအတွက် callback function ကိုသတ်မှတ်ရန် register_shutdown_function ကိုကျွန်ုပ်တို့သုံးရမည်။ မှတ်သားထားသင့်သည်မှာ register_shutdown_function မှသတ်မှတ်ထားသော callback သည် program ကိုရပ်စဲပြီးသည်နှင့်လုပ်ငန်းစဉ်အတွင်းအမှားအယွင်းရှိမရှိမည်သို့ပြုလုပ်သည်ကိုမှတ်သားရန်ဖြစ်သည်။ ဒါကြောင့်ဒီ callback မှာအမှားတစ်ခုဖြစ်မလားဆုံးဖြတ်ဖို့လိုတယ်။ အမှားတစ်ခုဖြစ်ခဲ့ရင် log ထဲမှာမှတ်တမ်းတင်လိမ့်မယ်။ အသေးစိတ်အတွက် ကျေးဇူးပြု၍ အောက်ပါကုဒ်ကိုဖတ်ပါ။
set_error_handler('exception_handler');
register_shutdown_function('shutdown_handler');
function exception_handler($err_no, $err_str, $err_file, $err_line)
{
error_reporting(0);
// save error log
// ...
error_reporting(E_ALL);
}
function shutdown_handler()
{
$error = error_get_last();
if (empty($error)) {
return;
}
error_reporting(0);
// save error log
// ...
error_reporting(E_ALL);
}