လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> error_reporting () နှင့်အတူ init functions ကိုအသုံးပြုရန်ဘုံနည်းလမ်းများ ()

error_reporting () နှင့်အတူ init functions ကိုအသုံးပြုရန်ဘုံနည်းလမ်းများ ()

gitbox 2025-05-28

PHP applications များကိုတီထွင်သည့်အခါ debugging နှင့်အမှားကိုင်တွယ်မှုအလွန်အရေးကြီးသည်။ developer များကို Develiters အမျိုးမျိုးတွင် Debug ပရိုဂရမ်များသို့လွယ်ကူချောမွေ့စေရန် PHP သည်အမှားအယွင်းများကိုဖော်ပြရန်ခွင့်ပြုထားသော Error_reporting () function ကိုထောက်ပံ့ပေးသည်။ Application Startinal အချိန်တိုင်းတွင်အမှားအယွင်းများမှန်ကန်စွာပြုပြင်ရန်သေချာစေရန် init function ကိုအစပိုင်းတွင်အသုံးပြုလေ့ရှိသည်။

ဤဆောင်းပါးသည် Code ၏မှန်ကန်မှုနှင့်လုံခြုံမှုကိုသေချာစေရန်ဘုံအမှားအယွင်းများကိုသေချာစေရန် PHP တွင် Error_reporting () ကို PHP တွင် Code_reporting () ကိုမည်သို့ပေါင်းစပ်ရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။

1 ။ Init function ကိုအသုံးပြုပြီးအမှားအစီရင်ခံစာကိုအစပြုပါ

ပုံမှန်အားဖြင့် 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 န်းကျင်ရှိအမှားများကိုခြေရာခံရန်ဖိုင်များကိုမှတ်တမ်းတင်ရန်ဖိုင်များကိုမှတ်တမ်းတင်နိုင်သည်။

2 ။ ကွဲပြားခြားနားသောပတ်ဝန်းကျင်တွင်အမှားအစီရင်ခံစာများကိုညှိပါ

ဖွံ့ဖြိုးတိုးတက်မှုနှင့်ထုတ်လုပ်မှုပတ် 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 ၏အမှားအယွင်းကိုပိတ်ထားလိမ့်မည်။ အထိခိုက်မခံသောသတင်းအချက်အလက်များကိုယိုစိမ့်မှုများကိုရှောင်ရှားရန်အမှားအယွင်းများကိုမှတ်တမ်းတင်လိမ့်မည်။

ဒိုမိန်းအမည်ကိုအစားထိုးရန် URL ကို အသုံးပြု. URL ကိုအသုံးပြုသည်

အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်, သင်၏ကုဒ်နံပါတ်များကိုသင်၏ 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 ကိုအစားထိုးသည့်နေရာတွင်ရှိသည်။

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

Init function နှင့် error_reporting () ကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်ပိုမိုကောင်းမွန်သောပတ် 0 န်းကျင်နှင့်အညီကွဲပြားသောပတ်ဝန်းကျင်နှင့်အညီမှားယွင်းသောပတ်ဝန်းကျင်နှင့်အညီအမှားအယွင်းများကိုပြောင်းလဲနိုင်သည်။ URL domain အစားထိုးရန်အတွက်ကျွန်ုပ်တို့သည်ပုံမှန်စကားရပ်များကိုပြောင်းလွယ်ပြင်လွယ်ဖြစ်ရန်အတွက်လည်းအသုံးပြုနိုင်သည်။

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