ကြီးမားသော PHP စီမံကိန်းများတွင်ဖိုင်များကိုအလိုအလျောက်ဖွင့်ပြီးလမ်းကြောင်းဆိုင်ရာ configurations များပါ 0 င်သည်။ အထူးသဖြင့်သင်အသုံးပြုသောအခါ, spl_autoload_register သို့မဟုတ်မူဘောင်၏ autheader , သင် အတန်းသို့မဟုတ်ဖိုင်၏ autoleoader, အကယ်. သင်သည်အတန်းသို့မဟုတ်ဖိုင်၏ autooloader, အကယ်. သင်သည်အတန်းသို့မဟုတ်ဖိုင်တင်ခြင်းပျက်ကွက်မှုအားဖြင့်သင်ကြုံတွေ့ရပါကလမ်းကြောင်းပြ problem နာကိုရှာဖွေခြင်းသည်အလွန်ခက်ခဲနိုင်သည်။ ကံကောင်းထောက်မစွာပင် PHP သည်သင့်အားဤပြ problems နာများကိုရှာဖွေဖော်ထုတ်ရန်ရှာဖွေဖော်ထုတ်ရန်ကူညီနိုင်သည့် built_include_path () ကို ပါ 0 င်သည်။
ထည့်သွင်းထားသော PHP ၏ configuration item ၏ configuration item တစ်ခုဖြစ်ပြီးသင် ခေါ်ဆို သည့်အခါသို့မဟုတ်လုပ်ဆောင်ချက်များ လိုအပ်သည့် အခါသင်သတ်မှတ်ထားသောဖိုင်ကိုမည်သည့် directory ကိုရှာဖွေလိမ့်မည်ကိုသတ်မှတ်လိမ့်မည်။ ဤလမ်းကြောင်းကို php.ini ဖိုင်မှတဆင့်သတ်မှတ်နိုင်သည်သို့မဟုတ်၎င်းကို runtime တွင် set_include_path () အားဖြင့်ပြောင်းလဲနိုင်သည်။
ဥပမာအားဖြင့်,
include 'myclass.php';
MyClass.php သည် MyClass.php တည်ရှိခြင်းရှိမရှိစစ်ဆေးပါလိမ့်မည် ။
ဘုံအကြောင်းပြချက်များတွင်:
ထည့်သွင်းထားသောဖိုင် သည်ပစ်မှတ်ထားသောဖိုင်တည်ရှိရာလမ်းညွှန်မပါ 0 င်ပါ။
သင်ဖိုင်သည်လမ်းကြောင်းတစ်လမ်းတွင်ရှိနေသည်ဟုသင်မှားယွင်းစွာထင်သော်လည်းမဟုတ်ပါ။
စီမံကိန်းတွင် autoloaders မျိုးစုံကိုအသုံးပြုသည်။ ၎င်းတို့၏ရှာဖွေရေးနည်းဗျူဟာများသည်ကွဲပြားခြားနားသည်။
အချို့သောမူဘောင်များသို့မဟုတ်စာကြည့်တိုက်များသည် runtime တွင် ပြောင်းလဲခြင်း , နောက်ဆက်တွဲ loading အပြုအမူကိုထိခိုက်စေသည်။
ယခုအချိန်တွင် Get_include_Path () ကို အသုံးပြုခြင်းသည်လက်ရှိရှာဖွေရေးလမ်းကြောင်းကိုအလွန်အလိုလိုသိနိုင်သည်။
အောက်ပါကုဒ်ကိုသင့်လျော်သောနေရာ၌ထည့်သွင်းရန်လိုအပ်သည် (ဖိုင်မတင်မီ):
echo get_include_path();
output ကိုဆင်တူသည် -
.:/var/www/html/lib:/usr/share/php
ဤရလဒ်က PHP သည်လက်ရှိလမ်းညွှန် ( ), var / www / html / html / html / lib / from နှင့် / usr / usr / usr / from / php တို့တွင်ပါ 0 င်သောဖိုင်များကိုရှာဖွေလိမ့်မည်ဟုဖော်ပြသည်။
ရလဒ်များကိုအနည်းငယ်ရှင်းလင်းစွာ format လုပ်နိုင်သည်။
$paths = explode(PATH_SEPARATOR, get_include_path());
foreach ($paths as $index => $path) {
echo "[$index] $path" . PHP_EOL;
}
[0] .
[1] /var/www/html/lib
[2] /usr/share/php
ဤနည်းအားဖြင့်သင်တစ် ဦး အားဖြင့်တ ဦး တည်းကိုဖြေရှင်းနိုင်သည်။ ဤလမ်းကြောင်းများတွင်သင်မျှော်လင့်ထားသည့်လမ်းညွှန်များရှိပါသလား။ မှားယွင်းသောလမ်းကြောင်းအတိုင်းပြ problem နာရှိပါသလား။
စစ်ဆေးမှုအတွက်ကုဒ်ရှိလမ်းကြောင်းကိုခေတ္တညှိနိုင်သည်။
set_include_path(get_include_path() . PATH_SEPARATOR . '/home/user/my-lib');
သို့မဟုတ်လုံးဝတည်ဆဲလမ်းကြောင်းကိုအစားထိုး:
set_include_path('/home/user/my-lib');
မှတ်ချက် - ထည့်သွင်း ခြင်းတွင်ထည့်သွင်းခြင်းပါဝင်သည်။ debugging ပြီးနောက်ဂရုတစိုက်ပြန်လည်စတင်ရန်သို့မဟုတ်အသုံးပြုရန်အကြံပြုသည်။
PHP သည် stream_resolve_intude_path () ကိုတိုက်ရိုက်ပေးနိုင်သည်။ ၎င်းသည်အမှန်တကယ်လမ်းကြောင်းမှန်ပေါ်တွင်မည်သည့်လမ်းကြောင်းကိုမှဖြေရှင်းပေးမည်ကိုသင်တိုက်ရိုက်ပြောပြနိုင်သည့်သင့်အားတိုက်ရိုက်ပြောပြနိုင်သည်။ ဥပမာအားဖြင့်:
$file = 'MyLibrary/Helper.php';
$resolved = stream_resolve_include_path($file);
if ($resolved !== false) {
echo "Found at: $resolved";
} else {
echo "File not found in include_path.";
}
ဤလုပ်ဆောင်ချက်သည်အထူးသဖြင့်အလိုအလျောက် Loader တွင်အဘယ်ကြောင့်မတင်ပါ။
Get_includude_path () သည် PHP ဖိုင်တင်ခြင်းနောက်ကွယ်ရှိယုတ္တိဗေဒကိုဆန်းစစ်ရန်ကူညီနိုင်သည့်ရိုးရှင်းသော်လည်းအစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ဖိုင်မရှိသဖြင့်မသတ်မှတ်ထားသည့်သို့မဟုတ်အတန်းအစားကိုမသတ်မှတ်ခြင်းမရှိသောပြ problems နာများ၌မသတ်မှတ်ခြင်း, configuration နှင့် chargathing ၏အမှန်တကယ်အကြောင်းအရာများကိုစစ်ဆေးခြင်းသည်အမြန်ဆုံးပြ esh နာဖြေရှင်းခြင်း၏အတိုင်းအတာကိုမကြာခဏကျဉ်းမြောင်းစေသည်။ Set_include_Path () နှင့် stream_resolve_include_path ကို ပေါင်းစပ်ခြင်း,
အမှန်တကယ်စီမံကိန်းများတွင်မတူညီသောပတ်ဝန်းကျင်တွင်နေရာချထားခြင်းသို့မဟုတ်တတိယပါတီစာကြည့်တိုက်များစွာကိုအသုံးပြုခြင်းသို့မဟုတ်တတိယပါတီစာကြည့်တိုက်များအသုံးပြုခြင်းကဲ့သို့သောအမှန်တကယ်စီမံကိန်းများတွင်သင်ပုံနှိပ်ထုတ်ဝေသောအဆင့်တွင် current_pathpath prescress_prath ကိုရိုက်ကူးရန်အကြံပြုသည်။
error_log("Current include_path: " . get_include_path());
Gitbox.net တွင်ချထားသည့်စီမံကိန်းကိုသင်ဖြိုခွဲနေပါကသင်၏ browser ရှိရောဂါရှာဖွေရေးဇာတ်ညွှန်းကိုသင်အသုံးပြုနိုင်သည်။
// https://gitbox.net/debug/include_path.php
echo nl2br(get_include_path());
၎င်းသည်သင့်အားဖြည့်ဆည်းပေးရန်အဆင်ပြေစေရန်အလွန်အဆင်ပြေစေရန်ဆာဗာပေါ်ရှိအမှန်တကယ်လမ်းကြောင်းပြင်ဆင်မှုကိုအလိုအလျောက်မြင်နိုင်ရန်ခွင့်ပြုသည်။