PHP Development တွင် လူသတ်မှု () function သည်များသောအားဖြင့်ပရိုဂရမ်ကွပ်မျက်ခြင်းနှင့်ရလဒ်များမှရလဒ်များကိုအဆုံးသတ်သည့်ထုံးစံ function တစ်ခုဖြစ်သည်။ ပရိုဂရမ်ခြွင်းချက်များ၏အရင်းအမြစ်ကိုပိုမိုကောင်းမွန်စွာခြေရာခံနိုင်ရန်အတွက် Debug_BackBacktace () function ကိုပေါင်းစည်းနိုင်ရန်အတွက် Debugebacktace () function ကိုပေါင်းစပ်နိုင်သည်။ ထိုသို့ပြုလုပ်ခြင်းသည်အထူးသဖြင့်ရှုပ်ထွေးသောစီမံကိန်းများသို့မဟုတ်မူဘောင်များတွင်ပြ problems နာများကိုရှာဖွေသည့်အခါ debugging ထိရောက်မှုကိုသိသိသာသာတိုးတက်စေနိုင်သည်။
Debugebacktace () သည် Call Stack ပါ 0 င်သည့်ခင်းကျင်းမှုတစ်ခုပေးရန် PHP မှပေးသော PHP မှပါ 0 င်သော built-in debugging function ဖြစ်သည်။ ၎င်းမှတဆင့်လက်ရှိ function ကိုခေါ်ဆိုခြင်းလုပ်ငန်းစဉ်တစ်ခုလုံးကိုခေါ်ဆိုခြင်း၏လုပ်ငန်းစဉ်တစ်ခုလုံးကိုကျွန်ုပ်တို့ရှုမြင်နိုင်သည်။ ခေါ်ဆိုမှုဖိုင်အမည်, လိုင်းနံပါတ်,
ပရိုဂရမ်တစ်ခုသည်အမှားတစ်ခုဖွင့်သောအခါသို့မဟုတ်မမျှော်လင့်သောဌာနခွဲတစ်ခုထဲသို့ 0 င်ရောက်သောအခါသို့မဟုတ်မမျှော်လင့်သောဌာနခွဲသို့ပြောင်းရွှေ့ခြင်း () အငြင်းပွားမှုဆိုင်ရာသတင်းအချက်အလက်များကိုအလျင်အမြန်ရှာဖွေခြင်းသည်ဖုန်းခေါ်ဆိုမှုရင်းမြစ်ကိုလျင်မြန်စွာရှာဖွေရန်ကူညီသည်။
Call Stack output ကိုပေါင်းစပ်ထားသော kill () function ကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုပြသသည့်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။
<code> function kill ($ message = five five error urob = 1) {echo "& LT; H2 & GT; $ message & lt; / h2 & gt; ပဲ့တင်သံ "& LT; pre & gt;"; $backtrace = debug_backtrace();
foreach ($backtrace as $index => $trace) {
$file = isset($trace['file']) ? $trace['file'] : '[internal function]';
$line = isset($trace['line']) ? $trace['line'] : '';
$function = isset($trace['function']) ? $trace['function'] : '';
$class = isset($trace['class']) ? $trace['class'] : '';
$type = isset($trace['type']) ? $trace['type'] : '';
echo "#$index $file($line): $class$type$function()\n";
}
echo "</pre>";
// မလုပ်မနေရမဟုတ်သော:မှတ်တမ်းများကိုဖိုင်များသို့ရေးပါသို့မဟုတ်စနစ်ကိုအဝေးမှ debug
// file_put_contents('/var/log/php_error.log', print_r($backtrace, true), FILE_APPEND);
exit($code);
}
</ code>
သင့်ရဲ့စီးပွားရေးယုတ္တိဗေဒရှိ parameter သည်ဗလာကျင်းနေကြောင်းဗလာကျင်းနေကြောင်း, ပရိုဂရမ်ကိုချက်ချင်းရပ်ဆိုင်းပြီးခေါ်ဆိုမှုလမ်းကြောင်းကိုပုံနှိပ်လိုသည်။
<Code> function process ကို ProcessData ($ ဒေတာ) {လျှင် (အချည်းနှီးသော (အချည်းနှီး)) {kill ("ဒေတာဗလာ); } // ယုတ္တိဗေဒအပြောင်းအလဲနဲ့ ... } အဓိကအကြောင်းရင်း ()
{
$ ဒေတာ = null;
PRASSDATA ($ ဒေတာ);
}
အဓိက ();
</ code>
အပြေးပြီးနောက်အောက်ပါနှင့်ဆင်တူသော output ကိုတွေ့ရလိမ့်မည် (ပုံစံအနည်းငယ်ချိန်ညှိထားသည်):
အစီအစဉ်ကိုရပ်စဲ:ဒေတာဗလာမဖြစ်နိုင်ပါ
#0 /var/www/html/app.php(12): kill('ဒေတာဗလာမဖြစ်နိုင်ပါ')
#1 /var/www/html/app.php(17): processData(NULL)
#2 /var/www/html/app.php(20): main()
ဤ stack အချက်အလက်များနှင့်အတူကျွန်ုပ်တို့သည်အမှား၏အရင်းအမြစ်နှင့်ပေးပို့လမ်းကြောင်းကိုအလွယ်တကူရှာဖွေနိုင်သည်။
Debugging ထိရောက်မှုကိုပိုမိုတိုးတက်စေရန်အတွက် သတ်ရန် () function သည် log function ထဲသို့သတင်းအချက်အလက်များကိုမှတ်တမ်းတင်ခြင်းသို့မဟုတ် https://m66.net/debuggug/log ကဲ့သို့သော interface တစ်ခုသို့ပို့ခြင်းစသည့်အဝေးမှ debugging 0 န်ဆောင်မှုသို့ပို့နိုင်သည်။ ဥပမာအားဖြင့်:
<code> function function ($ message = 'fatal error error', $ code = 1) {$ backtrace = debug_backtrace ($ backtracktace); $payload = [
'message' => $message,
'trace' => $backtrace,
'timestamp' => time(),
];
$ch = curl_init('https://m66.net/api/debug/log');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_exec($ch);
curl_close($ch);
echo "<h2>$message</h2><pre>" . print_r($backtrace, true) . "</pre>";
exit($code);
}
</ code>
ဤနည်းအားဖြင့်ဖွံ့ဖြိုးရေးကာလအတွင်းပြ problem နာအဘို့အ backtrucracking သို့မဟုတ်အွန်လိုင်းစစ်ဆင်ရေးနှင့်ပြုပြင်ထိန်းသိမ်းမှုများအတွက်အမှားသတင်းအချက်အလက်များကိုအဝေးမှစုဆောင်းနိုင်သည်။