<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဒီစာရွက်စာတမ်းကရှင်းပြသည်PHPအလယ်ပိုင်းset_include_pathလုပ်ဆောင်ချက်လျှောက်လွှာကျွမ်းကျင်မှု,ဘုံဖြေရှင်းရန်includeလမ်းကြောင်းပ conflict ိပက်ခပြ issue နာ。</span></span><span>
</span><span><span class="hljs-comment">// ------------------------------------------------------------</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
<h1>ဘယ်လိုသုံးရမလဲset_include_pathလုပ်ဆောင်ချက်များကိုထိရောက်စွာဖြေရှင်းနိုင်သည်</span><span><span class="hljs-keyword">include</span></span><span>လမ်းကြောင်းပ conflict ိပက်ခပြ issue နာ?</h1>
နေ့စဉ်ဘဝ၌PHP开发အလယ်ပိုင်း,ကျနော်တို့မကြာခဏသုံးပါ `</span><span><span class="hljs-keyword">include</span></span><span>`、`</span><span><span class="hljs-keyword">require</span></span><span>`、`</span><span><span class="hljs-keyword">include_once</span></span><span>` နှင့် `</span><span><span class="hljs-keyword">require_once</span></span><span>` ပြင်ပဖိုင်များကိုမိတ်ဆက်ရန်ထုတ်ပြန်ချက်များပေးပို့ပါ。မည်မှျပင်,စီမံကိန်းဖွဲ့စည်းပုံရှုပ်ထွေးသောသို့မဟုတ်တတိယပါတီစာကြည့်တိုက်များကိုအသုံးပြုသည်,ကွဲပြားခြားနားသောဖိုင်များ၏ဆွေမျိုးလမ်းကြောင်းပ conflict ိပက်ခဖြစ်နိုင်သည်,ဖိုင်ကိုပုံမှန်ဝန်တင်ရန်ဖြစ်ပေါ်စေသည်。အခုအချိန်တွင်,`</span><span><span class="hljs-title function_ invoke__">set_include_path</span></span><span>()` လုပ်ဆောင်ချက်များကိုအထူးသဖြင့်အရေးကြီးသည်。
</span><span><span class="hljs-comment">## တစ်、နားလည်include_path၏အခန်းကဏ်။</span></span><span>
`include_path` ဟုတ်ကဲ့ PHP တင်သွင်းသောဖိုင်များကိုရှာဖွေသောအခါအသုံးပြုသောလမ်းကြောင်းများစာရင်း。ကျိုးကြောင်းဆီလျော် configuration မှတဆင့် `include_path`,နိုင်PHP优先在指定目录အလယ်ပိုင်း查找文件,而不ဟုတ်ကဲ့依赖调用位置的相对路径。
ပုံမှန်အားဖြင့်,PHP只会在当前脚本目录或系统默认路径အလယ်ပိုင်း查找包含文件。ဤသည်ကြီးမားသောစီမံကိန်းများအတွက်အလွန်မဆိုင်းမတွဖြစ်ပါတယ်,ပ conflicts ိပက်ခများပ conflicts ိပက်ခ。
</span><span><span class="hljs-comment">## နှစ်、set_include_path() အခြေခံအသုံးပြုမှု</span></span><span>
```php
</span><span><span class="hljs-title function_ invoke__">set_include_path</span></span><span>(</span><span><span class="hljs-string">'/path/to/includes'</span></span><span>);
</span></span>
ဤလုပ်ဆောင်ချက်သည် PHP's Changpath ကို မူလပြင်ဆင်မှုကိုပယ်ဖျက်ရန်တိုက်ရိုက်သတ်မှတ်လိမ့်မည်။ ပိုမိုလုံခြုံသောနည်းလမ်းမှာရှိပြီးသား INSHT_PATHTAPTHT သို့လမ်းကြောင်းအသစ်ကိုဖြည့်ဆည်းရန်ဖြစ်သည်။
<span><span><span class="hljs-variable">$path</span></span><span> = </span><span><span class="hljs-string">'/my/custom/path'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">set_include_path</span></span><span>(</span><span><span class="hljs-title function_ invoke__">get_include_path</span></span><span>() . PATH_SEPARATOR . </span><span><span class="hljs-variable">$path</span></span><span>);
</span></span>
၎င်းသည်မူရင်းရှာဖွေရေးလမ်းညွှန်ကိုထိန်းသိမ်းထားနိုင်ပြီးအခြားဖိုင်များကိုမအောင်မြင်မှုများကိုမတားဆီးနိုင်ပါ။
config.php အမည်ရှိဖိုင်တွဲတွင် / ရောင်းချသူ / လက်အောက်တွင် / ရောင်းချသူ / လက်အောက်ခံ / လက်အောက်တွင်ရှိသောစာကြည့်တိုက်နှစ်ခုကိုသင်အသုံးပြုသည်ဆိုပါစို့။ သင်ရိုးရာကိုသုံးလျှင်:
<span><span><span class="hljs-keyword">include</span></span><span> </span><span><span class="hljs-string">'config.php'</span></span><span>;
</span></span>
PHP သည် libb ဖိုင်များကိုသင်မျှော်လင့်ထားသည့် liba မဟုတ်ပါ။ ဤကိစ္စတွင်, သင်သည် loading order ကိုတိကျစွာထိန်းချုပ်ရန် Set_include_path ကို သုံးနိုင်သည်။
<span><span><span class="hljs-title function_ invoke__">set_include_path</span></span><span>(</span><span><span class="hljs-string">'/vendor/libA'</span></span><span> . PATH_SEPARATOR . </span><span><span class="hljs-string">'/vendor/libB'</span></span><span> . PATH_SEPARATOR . </span><span><span class="hljs-title function_ invoke__">get_include_path</span></span><span>());
</span><span><span class="hljs-keyword">include</span></span><span> </span><span><span class="hljs-string">'config.php'</span></span><span>; </span><span><span class="hljs-comment">// ထံမှ ဦး စားပေးlibAဝန်တင်</span></span><span>
</span></span>
သင်အလိုအလျောက်တင်ဆောင်သည့်အတန်းများကိုအသုံးပြုသောနေရာ၌ပါ 0 င်သည့်အခြေအနေတွင် ပါ 0 င်ခြင်း က 0 န်ဆောင်မှုပေးသည်။ ဥပမာအားဖြင့်:
<span><span><span class="hljs-title function_ invoke__">set_include_path</span></span><span>(</span><span><span class="hljs-keyword">__DIR__</span></span><span> . </span><span><span class="hljs-string">'/classes'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">spl_autoload_register</span></span><span>(function (</span><span><span class="hljs-variable">$class</span></span><span>) {
</span><span><span class="hljs-keyword">include</span></span><span> </span><span><span class="hljs-variable">$class</span></span><span> . </span><span><span class="hljs-string">'.php'</span></span><span>;
});
</span></span>
၎င်းသည်သင့်အား၎င်း၏လမ်းကြောင်းပေါ်သို့မစိုးရိမ်ဘဲအတန်းအစားအမည်ကိုသာအာရုံစိုက်ရန်ခွင့်ပြုသည်။
အချို့သောမူဘောင်များ၌သို့မဟုတ်ကမ္ဘာလုံးဆိုင်ရာအကျိုးသက်ရောက်မှုလိုအပ်ပါက ini_set ကို ပြုပြင်ရန်အတွက် Ini_set ကို သုံးနိုင်သည်။
<span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'include_path'</span></span><span>, </span><span><span class="hljs-string">'/global/includes'</span></span><span> . PATH_SEPARATOR . </span><span><span class="hljs-title function_ invoke__">ini_get</span></span><span>(</span><span><span class="hljs-string">'include_path'</span></span><span>));
</span></span>
set_include_path နှင့်မတူဘဲ Ini_set သည် Php.ini ရှိ configuration value ကိုတိုက်ရိုက်ပြုပြင်မွမ်းမံခြင်း, နောက်ဆက်တွဲ scripts များအပေါ်သက်ရောက်သည်။
Set_includude_path () သည် PHP ရှိလမ်းကြောင်းပ conflicts ိပက်ခများကိုဖြေရှင်းရန်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ Path_searator_Path () နှင့် spl_autoload_register ()) ကိုပြောင်းလွယ်ပြင်လွယ် setting လုပ်ခြင်းနှင့်ပေါင်းစပ်ခြင်းဖြင့် code ၏အားဖြည့်စွက်ခြင်းနှင့်ထိန်းသိမ်းခြင်းတို့ဖြင့်စနစ်၏အားဖြည့်ခြင်းနှင့်ထိန်းသိမ်းခြင်းတို့ကိုပြုလုပ်နိုင်သည်။ အကြီးစားစီမံကိန်းများနှင့်လူပေါင်းစုံပူးပေါင်းဆောင်ရွက်မှုဆိုင်ရာပတ်ဝန်းကျင်တွင်ပူးပေါင်းဆောင်ရွက်မှုဆိုင်ရာကဏ် enterments များ၌အကျင့်ကောင်းများကို အသုံးပြု. ပ conflicts ိပက်ခများကြောင့်ပ conflicts ိပက်ခများကြောင့်ဖြစ်သောအမှားများကိုရှောင်ရှားရန်လမ်းကြောင်းများကိုစီမံရန်အလေ့အကျင့်ကောင်းများကိုတီထွင်သင့်သည်။
<span></span>