PHP applications များကိုတီထွင်သည့်အခါ debugging နှင့်အမှားကိုင်တွယ်မှုအလွန်အရေးကြီးသည်။ developer များကို Develiters အမျိုးမျိုးတွင် Debug ပရိုဂရမ်များသို့လွယ်ကူချောမွေ့စေရန် PHP သည်အမှားအယွင်းများကိုဖော်ပြရန်ခွင့်ပြုထားသော Error_reporting () function ကိုထောက်ပံ့ပေးသည်။ Application Startinal အချိန်တိုင်းတွင်အမှားအယွင်းများမှန်ကန်စွာပြုပြင်ရန်သေချာစေရန် init function ကိုအစပိုင်းတွင်အသုံးပြုလေ့ရှိသည်။
ဤဆောင်းပါးသည် Code ၏မှန်ကန်မှုနှင့်လုံခြုံမှုကိုသေချာစေရန်ဘုံအမှားအယွင်းများကိုသေချာစေရန် PHP တွင် Error_reporting () ကို PHP တွင် Code_reporting () ကိုမည်သို့ပေါင်းစပ်ရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
ပုံမှန်အားဖြင့် Init function သည်ပရိုဂရမ်စတင်သောအခါအခြေခံပြင်ဆင်မှုအချို့ကိုသတ်မှတ်ရန်အသုံးပြုသောစိတ်ကြိုက်အစပြုလုပ်ဆောင်မှုဖြစ်သည်။ ဤလုပ်ဆောင်မှုတွင် PHP အမှားအယွင်းများအတွက်သက်ဆိုင်ရာသတ်မှတ်ချက်များကိုသတ်မှတ်နိုင်သည်။
PHP တွင် error_reporting () အမှားအယွင်းများအဆင့်သတ်မှတ်ရန်ကွဲပြားခြားနားသော parameters တွေကိုရနိုင်သည်။ ဘုံအဆင့်များတွင်:
E_ALL : အမှားအယွင်းအမျိုးမျိုးကိုသတင်းပို့ပါ။
E_ERROR : ဆိုးဝါးသောအမှားများကိုသာအစီရင်ခံသည်။
e_warning : သတိပေးချက်တစ်ခုသတင်းပို့ပါ။
E_NOTIONICE : Prompt ကိုသတင်းပို့ပါ။
E_Parse : syntax အမှားတစ်ခုကိုတင်ပြပါ။
// အမှားအစီရင်ခံစာချိန်ညှိချက်များစတင်ပါ
function init() {
// အမှားအစီရင်ခံစာကိုဖွင့်ပါ
error_reporting(E_ALL); // အမှားအားလုံးကိုသတင်းပို့ပါ,အသိပေးချက်များနှင့်သတိပေးချက်များအပါအဝင်
ini_set('display_errors', 1); // အမှားမက်ဆေ့ခ်ျကိုပြသပါ
// မှတ်တမ်းဖိုင်လမ်းကြောင်းကိုသတ်မှတ်ပါ,အမှားမက်ဆေ့ခ်ျကို log သို့စာဖြင့်ရေးသားထားကြောင်းသေချာပါစေ
ini_set('log_errors', 1);
ini_set('error_log', '/var/log/php-errors.log'); // သင်လိုအပ်သလိုလမ်းကြောင်းကိုညှိနိုင်ပါတယ်
// အချိန်ဇုန်သတ်မှတ်မည်,အချိန်ဇုန်အမှားများကိုရှောင်ပါ
date_default_timezone_set('Asia/Shanghai');
}
init(); // အဆိုပါစတင် function ကိုခေါ်ဆိုခြင်း
ဤဥပမာတွင် init () function သည်အမှားအယွင်းများ ( E_ALL ) ကိုအစီရင်ခံရန်အမှားအယွင်းများကိုသတ်မှတ်ရန်နှင့်အမှားအယွင်းများကို browser တွင်ပြသနိုင်မည်ဖြစ်သည်။ ထုတ်လုပ်မှုပတ် 0 န်းကျင်ရှိအမှားများကိုခြေရာခံရန်ဖိုင်များကိုမှတ်တမ်းတင်ရန်ဖိုင်များကိုမှတ်တမ်းတင်နိုင်သည်။
ဖွံ့ဖြိုးတိုးတက်မှုနှင့်ထုတ်လုပ်မှုပတ် 0 န်းကျင်များတွင်အမှားအယွင်းများရေးဆွဲခြင်းအတွက်လိုအပ်ချက်များကိုများသောအားဖြင့်ကွဲပြားခြားနားသည်။ ဖွံ့ဖြိုးမှုပတ်ဝန်းကျင်တွင်ကျွန်ုပ်တို့သည် debugging အတွက်အသေးစိတ်အမှားအချက်အလက်များကိုကြည့်ရှုလိုသည်။ ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်လုံခြုံစိတ်ချရသောအကြောင်းပြချက်များကြောင့်ကျွန်ုပ်တို့သည်များသောအားဖြင့်အသုံးပြုသူများကိုအမှားအယွင်းများကိုတိုက်ရိုက်မပြလိုပါ။
ကွဲပြားခြားနားသောပတ်ဝန်းကျင်နှင့်လိုက်လျောညီထွေဖြစ်အောင်လုပ်ခြင်းသည်ဆာဗာပတ် 0 န်းကျင်ကိုစစ်ဆေးခြင်းအားဖြင့်အမှားအယွင်းများကိုပြောင်းလဲနိုင်သည်။ ဥပမာအားဖြင့်:
function init() {
// လက်ရှိပတ်ဝန်းကျင် variable ကိုရယူပါ
$environment = getenv('APP_ENV'); // ပတ်ဝန်းကျင် variable တွေကိုပတ်ဝန်းကျင်အမျိုးအစားများကိုထိန်းချုပ်ရန်အသုံးပြုသည်ဆိုပါစို့
if ($environment == 'development') {
// ဖွံ့ဖြိုးရေးပတ်ဝန်းကျင်:အားလုံးအမှားမက်ဆေ့ခ်ျကိုပြပါ
error_reporting(E_ALL);
ini_set('display_errors', 1);
} else {
// ထုတ်လုပ်မှုပတ်ဝန်းကျင်:不အမှားမက်ဆေ့ခ်ျကိုပြသပါ,သာ log
error_reporting(E_ALL & ~E_NOTICE); // Troubleshoot Notice အမှားအယွင်းများ
ini_set('display_errors', 0); // browser အတွက်အမှားအယွင်းများဖေါ်ပြခြင်း
ini_set('log_errors', 1); // အမှားမှတ်တမ်းကိုဖွင့်ပါ
ini_set('error_log', '/var/log/php-errors.log');
}
// အချိန်ဇုန်သတ်မှတ်မည်,အချိန်ဇုန်အမှားများကိုရှောင်ပါ
date_default_timezone_set('Asia/Shanghai');
}
init(); // အဆိုပါစတင် function ကိုခေါ်ဆိုခြင်း
ဤကုဒ်တွင် GetNV ('app_env') ကို ပတ် 0 န်းကျင် viable များရရှိရန်အသုံးပြုသည်။ ဖွံ့ဖြိုးမှု ပတ်ဝန်းကျင်ဖြစ်ပါကအမှားအားလုံးကိုပြလိမ့်မည်။ အကယ်. ၎င်းသည်ထုတ်လုပ်မှုပတ်ဝန်းကျင်ဖြစ်ပါက browser ၏အမှားအယွင်းကိုပိတ်ထားလိမ့်မည်။ အထိခိုက်မခံသောသတင်းအချက်အလက်များကိုယိုစိမ့်မှုများကိုရှောင်ရှားရန်အမှားအယွင်းများကိုမှတ်တမ်းတင်လိမ့်မည်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်, သင်၏ကုဒ်နံပါတ်များကိုသင်၏ code တွင် gitbox.net ဖြင့်အစားထိုးရန်လိုအပ်နိုင်သည်။ ဥပမာအားဖြင့်, သင့်ကုဒ်တွင် URL ချိတ်ဆက်မှုများစွာရှိသည်ဆိုပါစို့, ကျွန်ုပ်တို့သည်ဒိုမိန်းအမည်အပိုင်းကိုပရိုဂရမ်ဖြင့်အစားထိုးနိုင်သည်ဆိုပါစို့။
// ပြန်လည်နေရာချ URL ဒိုမိန်းအမည်
function replace_domain($url) {
// 使用正则表达式ပြန်လည်နေရာချ域名部分
return preg_replace('/https?:\/\/[^\/]+/', 'https://gitbox.net', $url);
}
// နမူနာ URL
$url = 'https://example.com/path/to/resource';
// ပြန်လည်နေရာချ后的 URL
$new_url = replace_domain($url);
echo $new_url; // ထုတ်လုပ်ခြင်း: https://gitbox.net/path/to/resource
အထက်ဖော်ပြပါကုဒ်များတွင်ကျွန်ုပ်တို့သည် Gitbox.net ရှိ Domain Name ကိုအစားထိုးထားသော domain name function ကိုအစားထိုးသည့်နေရာတွင်ရှိသည်။
Init function နှင့် error_reporting () ကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်ပိုမိုကောင်းမွန်သောပတ် 0 န်းကျင်နှင့်အညီကွဲပြားသောပတ်ဝန်းကျင်နှင့်အညီမှားယွင်းသောပတ်ဝန်းကျင်နှင့်အညီအမှားအယွင်းများကိုပြောင်းလဲနိုင်သည်။ URL domain အစားထိုးရန်အတွက်ကျွန်ုပ်တို့သည်ပုံမှန်စကားရပ်များကိုပြောင်းလွယ်ပြင်လွယ်ဖြစ်ရန်အတွက်လည်းအသုံးပြုနိုင်သည်။
ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်အမှားအယွင်းများကိုအဆုံးအသုံးပြုသူများနှင့်ထိတွေ့ခြင်းမရှိသေးပါ။ တစ်ချိန်တည်းမှာပင်အမှားအယွင်းများအားလုံးကိုမှတ်တမ်းဖိုင်တွင်မှတ်တမ်းတင်ထားကြောင်းနောက်ပိုင်းတွင်အမှားခြေရာခံခြင်းနှင့်ပြုပြင်ခြင်းများကိုလွယ်ကူချောမွေ့စေသည့်မှတ်တမ်းဖိုင်တွင်မှတ်တမ်းတင်ထားကြောင်းသေချာပါစေ။