<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဤတွင်စာမူနှင့်မသက်ဆိုင်သော Pre-code ၏ဥပမာတစ်ခုဖြစ်သည်</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဒီဆောင်းပါးကိုဖတ်ရန်လှိုက်လှဲစွာကြိုဆိုပါသည်!"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/**
* set_include_pathကျွမ်းကျင်မှုနှင့်သစ်ထုတ်လုပ်ရေး debugging function ကို:ဘုံပြ problems နာများကိုဖြေရှင်းရန်ထိရောက်သောနည်းလမ်းများ
*
* တည်နေPHPဖွံ့ဖြိုးမှုအောက်မှာ,set_include_pathလုပ်ဆောင်ချက်များကိုထည့်သွင်းရန်အသုံးပြုသည်(include_path),
* ၎င်းသည်လူတန်းစားဖိုင်များကိုအလိုအလျောက်ဖွင့်ရန်သို့မဟုတ်အများပြည်သူအရင်းအမြစ်များကိုမိတ်ဆက်ပေးခြင်းအတွက်အလွန်အရေးကြီးသည်。မည်မှျပင်,မလျော်ကန်သောလမ်းကြောင်း configuration မကြာခဏ ဦး ဆောင်လမ်းပြ
* ဖိုင်ပါဝင်မှုမအောင်မြင်ပါ、ထိုကဲ့သို့သောစနစ်တကျအလုပ်လုပ်မကဲ့သို့သောပြနာများ。ဤဆောင်းပါးသည်အချို့ debugging ဝေမျှလိမ့်မည်set_include_path
* လက်တွေ့ကျသောအကြံပြုချက်များ,နှင့်သစ်ထုတ်လုပ်ရေးပြ problem နာကိုထိရောက်စွာရှာဖွေရန်ဘယ်လိုမိတ်ဆက်ပေး,ဖွံ့ဖြိုးမှုထိရောက်မှုကိုတိုးတက်အောင်လုပ်ပါ。
*
* တစ်、နားလည်set_include_path၏အခန်းကဏ်။
* set_include_pathလက်ရှိ script ကိုပြောင်းလဲနိုင်သည်include_pathတည်ဆောက်သည်,PHPတည်နေinclude/require
* ဤလမ်းကြောင်းစာရင်းသည်ဖိုင်တစ်ခုအတွက်လှည့်စားသည့်အခါတွင်ဖော်ပြထားသည်။。အများအားဖြင့်အသုံးပြုရေးသားထားသောနည်းလမ်းများအတိုင်းအောက်ပါအတိုင်းဖြစ်ကြသည်:
*
* set_include_path(get_include_path() . PATH_SEPARATOR . '/path/to/lib');
*
* ထိုမှျ会တည်နေ原有路径基础上追加新的目录。
*
* နှစ်、မကြာခဏမေးလေ့ရှိသောမေးခွန်းများနှင့် debugging ကျွမ်းကျင်မှု
* 1. လမ်းကြောင်းသည်ထိရောက်မှုမရှိပါ
* - လမ်းကြောင်းမှန်ကြောင်းအတည်ပြုပါ,အကြွင်းမဲ့အာဏာလမ်းကြောင်းများသည်ဆွေမျိုးလမ်းကြောင်းများထက် သာ. ကောင်းသည်,မရေရာဒွိဟကိုရှောင်ကြဉ်ပါ。
* - အသုံးပြုget_include_path()လက်ရှိလမ်းကြောင်း output ကို,确认是否成功တည်ဆောက်သည်。
* - ၎င်းကိုဖုံးအုပ်ထားသည့်အခြားကုဒ်များရှိမရှိစစ်ဆေးပါinclude_pathတည်ဆောက်သည်。
*
* 2. ဖိုင်နေဆဲရှာမတွေ့ပါ
* - ဖိုင်အမည်နှင့်စာလုံးအကြီးနှင့်စာလုံးအသေးနှင့်စာလုံးအသေးနှင့်ဟုတ်မဟုတ်အတည်ပြုပါ,Linuxပတ်ဝန်းကျင်ကိစ္စအထိခိုက်မခံဖြစ်ပါတယ်。
* - အသုံးပြုrealpathfunction ကိုဖိုင်၏တကယ့်လမ်းကြောင်းကိုအတည်ပြုသည်。
* - ခွင့်ပြုချက်ပြ issue နာရှိမရှိစစ်ဆေးပါ,သေချာအောင်လုပ်ပါPHPအဆိုပါဖြစ်စဉ်ကိုခွင့်ပြုချက်ကိုဖတ်ရှုလျက်ရှိသည်。
*
* သုံး、Debugging ထိရောက်မှုကိုတိုးတက်စေရန် logging ပေါင်းစပ်ခြင်း
* မအောင်မြင်မှုများပါသောပြ the နာကိုရှာဖွေရန်,သစ်ထုတ်လုပ်မှုကိုထည့်သွင်းရန်အကြံပြုသည်,ဥပမာသည်အောက်ပါအတိုင်းဖြစ်သည်:
*/</span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">logIncludePathChange</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$newPath</span></span></span><span>) {
</span><span><span class="hljs-variable">$logFile</span></span><span> = </span><span><span class="hljs-keyword">__DIR__</span></span><span> . </span><span><span class="hljs-string">'/include_path.log'</span></span><span>;
</span><span><span class="hljs-variable">$time</span></span><span> = </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>);
</span><span><span class="hljs-variable">$message</span></span><span> = </span><span><span class="hljs-string">"[<span class="hljs-subst">$time</span></span></span><span>] include_path တည်ဆောက်သည်为:</span><span><span class="hljs-subst">$newPath</span></span><span>\n";
</span><span><span class="hljs-title function_ invoke__">file_put_contents</span></span><span>(</span><span><span class="hljs-variable">$logFile</span></span><span>, </span><span><span class="hljs-variable">$message</span></span><span>, FILE_APPEND);
}
</span><span><span class="hljs-comment">// တည်ဆောက်သည်新的include_path</span></span><span>
</span><span><span class="hljs-variable">$newPath</span></span><span> = </span><span><span class="hljs-title function_ invoke__">get_include_path</span></span><span>() . PATH_SEPARATOR . </span><span><span class="hljs-keyword">__DIR__</span></span><span> . </span><span><span class="hljs-string">'/lib'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">set_include_path</span></span><span>(</span><span><span class="hljs-variable">$newPath</span></span><span>);
</span><span><span class="hljs-comment">// သစ်ခုတ်</span></span><span>
</span><span><span class="hljs-title function_ invoke__">logIncludePathChange</span></span><span>(</span><span><span class="hljs-variable">$newPath</span></span><span>);
<span class="hljs-comment">/**
* ထိုမှျ,ဘယ်တော့လဲinclude_pathပြုပြင်သောအခါ,都会တည်နေ日志中留下记录,အဆင်ပြေသောပြ troubl နာဖြေရှင်းခြင်း。
*
* လေး、အမှားရိုက်ကူးခြင်းနှင့် debugging လုပ်ဆောင်ချက်များကိုအသုံးပြုခြင်း
* တည်နေincludeသို့မဟုတ်requireပေါင်းစပ်နိုင်ပါတယ်try-catch(အတွက်require_onceမလုံခြုံနိုင်သောအမှားများကိုစောင့်ပါ,
* 建议အသုံးပြု自定义အမှား处理函数):
*/</span>
</span><span><span class="hljs-title function_ invoke__">set_error_handler</span></span><span>(function(</span><span><span class="hljs-variable">$errno</span></span><span>, </span><span><span class="hljs-variable">$errstr</span></span><span>, </span><span><span class="hljs-variable">$errfile</span></span><span>, </span><span><span class="hljs-variable">$errline</span></span><span>) {
</span><span><span class="hljs-variable">$logFile</span></span><span> = </span><span><span class="hljs-keyword">__DIR__</span></span><span> . </span><span><span class="hljs-string">'/error.log'</span></span><span>;
</span><span><span class="hljs-variable">$message</span></span><span> = </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>) . </span><span><span class="hljs-string">" PHPအမှား[<span class="hljs-subst">$errno</span></span></span><span>]: </span><span><span class="hljs-subst">$errstr</span></span><span> တည်နေ </span><span><span class="hljs-subst">$errfile</span></span><span> 1 ။ </span><span><span class="hljs-subst">$errline</span></span><span> အိုကေ\n";
</span><span><span class="hljs-title function_ invoke__">file_put_contents</span></span><span>(</span><span><span class="hljs-variable">$logFile</span></span><span>, </span><span><span class="hljs-variable">$message</span></span><span>, FILE_APPEND);
</span><span><span class="hljs-comment">// ပြန်လာfalse继续执အိုကေPHP默认အမှား处理</span></span><span>
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">false</span></span><span>;
});
@</span><span><span class="hljs-keyword">include</span></span><span> </span><span><span class="hljs-string">'somefile.php'</span></span><span>; </span><span><span class="hljs-comment">// ဖိုင်ကိုရှာမတွေ့နိုင်ပါက,会触发အမှား日志记录</span></span><span>
<span class="hljs-comment">/**
* ငါး、အကျဉ်းချုပ်
* 通过နားလည်set_include_pathအခေြခံမူ,合理အသုံးပြု绝对路径,并结合日志记录和အမှား处理,
* ၎င်းသည်ဖိုင်ပါ 0 င်မှုလုပ်ငန်းစဉ်တွင်ပြ problems နာအမျိုးမျိုးကိုထိရောက်စွာရှာဖွေတွေ့ရှိနိုင်သည်。debugging စဉ်အတွင်း,ပိုပြီးအသုံးပြုရန်အကြံပြုသည်PHPbuilt-in လုပ်ဆောင်ချက်များကို
* (ကဲ့သို့get_include_path、realpath)နှင့် log output ကို,တဖြည်းဖြည်းချင်းစစ်ဆေးပါ,သေချာအောင်လုပ်ပါinclude_pathမှန်ကန်သော configuration ကို。
*
* ဤဆောင်းပါးတွင်ဤဆောင်းပါးတွင်ဆွေးနွေးခြင်းစွမ်းရည်နှင့်သစ်ထုတ်လုပ်ရေးနည်းလမ်းများကသင့်အားသက်ဆိုင်ရာပြ problems နာများကိုပိုမိုထိရောက်စွာဖြေရှင်းနိုင်ရန်ကူညီနိုင်သည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်。
*/</span>
</span><span><span class="hljs-meta">?></span></span><span>
</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဤတွင်ဆောင်းပါးနှင့်မသက်ဆိုင်သော Post-code ၏ဥပမာတစ်ခုဖြစ်သည်</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"စာဖတ်ခြင်းအတွက်ကျေးဇူးတင်ပါတယ်!"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>