နေ့စဉ် PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကျွန်ုပ်တို့သည်ပရိုဂရမ်တွင်ခြွင်းချက်များမကြာခဏကြုံတွေ့ရလေ့ရှိသည်။ ပြ the နာကိုလျင်မြန်စွာရှာဖွေရန် PHP သည် PHP သည်အလွန်လက်တွေ့ကျကျ နည်းပါးသော အတန်းအစား - GetTraceasString () ။ ၎င်းသည် stack trace အချက်အလက်များကို string trace အချက်အလက်များကို string output ထဲသို့ထုတ်ဖော်ပြောဆိုခြင်း, အမှားများဖြစ်ပေါ်ခြင်းနှင့်ခေါ်ဆိုမှုကွင်းဆက်ကိုတွေ့နိုင်သည်။
ခြွင်းချက်တစ်ခုဖမ်းမိသောအခါကျွန်ုပ်တို့သည် stack အချက်အလက်များကိုရရန် GetTraacsString () ကို တိုက်ရိုက်သုံးနိုင်သည်။
<code> ကြိုးစားပါ {// SICCESS NOW ခြွင်းချက်အသစ် ("စမ်းသပ်မှုအမှား") } ဖမ်း (ခြွင်းချက် $ င) {echo $ e-> gettraceasstring (); } </ code>output သည်အောက်ပါနှင့်ဆင်တူသည် -
#0 /var/www/html/test.php(3): throw new Exception('စမ်းသပ်မှုအမှား')
#1 {main}
၎င်းသည်အခြေခံအချက်အလက်များကိုလက်တွေ့ကျသောအပလီကေးရှင်းများဖြင့်ပြုလုပ်ထားပြီးဖြစ်သော်လည်း,
အသေးစိတ်အချက်အလက်များပိုမိုထုတ်လွှင့်နိုင်ရန်အတွက်ကျွန်ုပ်တို့သည်အမှားကိုင်တွယ်ပုံကိုကိုင်တွယ်ဖြေရှင်းခြင်းနှင့် GetTreasString ၏သတင်းအချက်အလက်များကိုအခြားရောဂါရှာဖွေရေးအချက်အလက်များနှင့်ပေါင်းစပ်နိုင်သည်။ ဥပမာအားဖြင့်:
<code> function lowexceptionxceptuddefail (ခြွင်းချက် $ င) {$ log = []; $ log [] = "အချိန်" ။ ရက်စွဲ ('YMD H: i: S: S'); $ log [] = "အမှားအယွင်း -" ။ $ e-> gettessage (); $ log [] = "ဖိုင် -" ။ $ e-> getfile () ။ "" "" "" "" "line" () "line"; $ log url: "_sert_ARDRE]; $ _server ['untote_addr']; $ log _" "" တောင်းဆိုချက် parameters) ။ JSOR_UNSESSesTaped_unicode); $ log [] = "ခေါ်ဆိုမှု stack: \ n" ။ $ e-gettraceasstring (); file_put_contents(__DIR__ . '/error.log', implode("\n", $log) . "\n\n", FILE_APPEND);
}
</ code>
ပရိုဂရမ်တွင်အသုံးပြုပါ။
<code> ကြိုးစားပါ {// အမှားတစ်ခုရှိနိုင်သည့်အမှားတစ်ခုပြုလုပ်နိုင်သည့် someriskyfunction () ဆိုပါစို့။ } ဖမ်း (ခြွင်းချက် $ င) {logexceptionDailed ($ င); ECHO "system error error error rights: နောက်မှထပ်ကြိုးစားပါ။ "; } </ code>ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်အမှားအယွင်းများကိုမှတ်တမ်းတင်ခြင်းနှင့် stack နဂိုအတိုင်းကိုမှတ်တမ်းတင်ခြင်း,
အရေးပါသောစနစ်များတွင်အမှားတစ်ခုဖြစ်ပွားပြီးနောက်, မှတ်တမ်းကိုမှတ်တမ်းတင်ရန်လိုအပ်ရုံသာမက developer များအားအချိန်နှင့်တပြေးညီအကြောင်းကြားရန်လည်းလိုအပ်သည်။ အထက်ပါ logexceptiondefredDailding function ကိုတိုးချဲ့နိုင်သည်, အီးမေးလ်များသို့မဟုတ်ဖုန်းခေါ်ဆိုသောအဝေးသင်, Dingtalk, Dingtalk သို့မဟုတ်သင်၏ကိုယ်ပိုင်အသိပေးစာစနစ်ကဲ့သို့သောအီးမေးလ်များကိုပို့နိုင်သည်။
<Code> function notifydeveam ($ message) {$ url = "https://api.m66.net/notify"; // နမူနာ interface $ ဒေတာ = ['msg' => $ မက်ဆေ့ခ်ျ]; $opts = [
"http" => [
"method" => "POST",
"header" => "Content-Type: application/json",
"content" => json_encode($data)
]
];
file_get_contents($url, false, stream_context_create($opts));
}
</ code>
သစ်ထုတ်လုပ်ပြီးနောက်ထည့်ပါ
<Code> Notifydeveadeveam (implinedode ("\ n", $ log)); </ code>GetTraceasString () နှင့်အတူကျွန်ုပ်တို့သည်ခေါ်ဆိုမှု stack အချက်အလက်များကိုချွင်းချက်ဖြင့်ရယူနိုင်ပါသည်။ ၎င်းသည် debugging အတွက်အလွန်အထောက်အကူပြုသည်။ အခြေအနေသတင်းအချက်အလက်, စိတ်ကြိုက်ပုံစံများ, သစ်ထုတ်လုပ်ခြင်းနှင့်အသိပေးချက်ယန္တရားများကိုပေါင်းစပ်ခြင်း, အပြည့်အဝအမှားအယွင်းများကိုတည်ဆောက်နိုင်သည်။ ၎င်းသည်ကျွန်ုပ်တို့အားပြ the နာကိုတစ်စုံတစ်ရာမှားယွင်းနေသည့်အခါတတ်နိုင်သမျှအမြန်ဆုံးသိရန်ခွင့်ပြုရန်သာမကစစ်ဆေးခြင်းကိုစစ်ဆေးသည်။ ၎င်းသည် PHP စီမံကိန်းတိုင်းတွင်ထည့်သွင်းသင့်သည့်အင်္ဂါရပ်တစ်ခုဖြစ်သည်။