လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP တွင် Get_include_Path () ကို PHP တွင် Debug ဖိုင်တင်ရန်အမိန့်ပြ issues နာများကိုသုံးပါ

PHP တွင် Get_include_Path () ကို PHP တွင် Debug ဖိုင်တင်ရန်အမိန့်ပြ issues နာများကိုသုံးပါ

gitbox 2025-05-29

ကြီးမားသော PHP စီမံကိန်းများတွင်ဖိုင်များကိုအလိုအလျောက်ဖွင့်ပြီးလမ်းကြောင်းဆိုင်ရာ configurations များပါ 0 င်သည်။ အထူးသဖြင့်သင်အသုံးပြုသောအခါ, spl_autoload_register သို့မဟုတ်မူဘောင်၏ autheader , သင် အတန်းသို့မဟုတ်ဖိုင်၏ autoleoader, အကယ်. သင်သည်အတန်းသို့မဟုတ်ဖိုင်၏ autooloader, အကယ်. သင်သည်အတန်းသို့မဟုတ်ဖိုင်တင်ခြင်းပျက်ကွက်မှုအားဖြင့်သင်ကြုံတွေ့ရပါကလမ်းကြောင်းပြ problem နာကိုရှာဖွေခြင်းသည်အလွန်ခက်ခဲနိုင်သည်။ ကံကောင်းထောက်မစွာပင် PHP သည်သင့်အားဤပြ problems နာများကိုရှာဖွေဖော်ထုတ်ရန်ရှာဖွေဖော်ထုတ်ရန်ကူညီနိုင်သည့် built_include_path () ကို ပါ 0 င်သည်။

1 ။ "chat_path?

ထည့်သွင်းထားသော PHP ၏ configuration item ၏ configuration item တစ်ခုဖြစ်ပြီးသင် ခေါ်ဆို သည့်အခါသို့မဟုတ်လုပ်ဆောင်ချက်များ လိုအပ်သည့် အခါသင်သတ်မှတ်ထားသောဖိုင်ကိုမည်သည့် directory ကိုရှာဖွေလိမ့်မည်ကိုသတ်မှတ်လိမ့်မည်။ ဤလမ်းကြောင်းကို php.ini ဖိုင်မှတဆင့်သတ်မှတ်နိုင်သည်သို့မဟုတ်၎င်းကို runtime တွင် set_include_path () အားဖြင့်ပြောင်းလဲနိုင်သည်။

ဥပမာအားဖြင့်,

 include 'myclass.php';

MyClass.php သည် MyClass.php တည်ရှိခြင်းရှိမရှိစစ်ဆေးပါလိမ့်မည်

2 ။ အဘယ်ကြောင့်ပျက်ကွက်မှုပြ problem နာကိုသင်ကြုံတွေ့ရသနည်း။

ဘုံအကြောင်းပြချက်များတွင်:

  • ထည့်သွင်းထားသောဖိုင် သည်ပစ်မှတ်ထားသောဖိုင်တည်ရှိရာလမ်းညွှန်မပါ 0 င်ပါ။

  • သင်ဖိုင်သည်လမ်းကြောင်းတစ်လမ်းတွင်ရှိနေသည်ဟုသင်မှားယွင်းစွာထင်သော်လည်းမဟုတ်ပါ။

  • စီမံကိန်းတွင် autoloaders မျိုးစုံကိုအသုံးပြုသည်။ ၎င်းတို့၏ရှာဖွေရေးနည်းဗျူဟာများသည်ကွဲပြားခြားနားသည်။

  • အချို့သောမူဘောင်များသို့မဟုတ်စာကြည့်တိုက်များသည် runtime တွင် ပြောင်းလဲခြင်း , နောက်ဆက်တွဲ loading အပြုအမူကိုထိခိုက်စေသည်။

ယခုအချိန်တွင် Get_include_Path () ကို အသုံးပြုခြင်းသည်လက်ရှိရှာဖွေရေးလမ်းကြောင်းကိုအလွန်အလိုလိုသိနိုင်သည်။

3 ။ Get_includude_Path () ကို Debug ကိုဘယ်လိုသုံးရမလဲ။

အောက်ပါကုဒ်ကိုသင့်လျော်သောနေရာ၌ထည့်သွင်းရန်လိုအပ်သည် (ဖိုင်မတင်မီ):

 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;
}

နမူနာ output ကို:

 [0] .
[1] /var/www/html/lib
[2] /usr/share/php

ဤနည်းအားဖြင့်သင်တစ် ဦး အားဖြင့်တ ဦး တည်းကိုဖြေရှင်းနိုင်သည်။ ဤလမ်းကြောင်းများတွင်သင်မျှော်လင့်ထားသည့်လမ်းညွှန်များရှိပါသလား။ မှားယွင်းသောလမ်းကြောင်းအတိုင်းပြ problem နာရှိပါသလား။

4 ။ ပြုပြင်ရန်အတွက်သိကောင်းစရာများ

စစ်ဆေးမှုအတွက်ကုဒ်ရှိလမ်းကြောင်းကိုခေတ္တညှိနိုင်သည်။

 set_include_path(get_include_path() . PATH_SEPARATOR . '/home/user/my-lib');

သို့မဟုတ်လုံးဝတည်ဆဲလမ်းကြောင်းကိုအစားထိုး:

 set_include_path('/home/user/my-lib');

မှတ်ချက် - ထည့်သွင်း ခြင်းတွင်ထည့်သွင်းခြင်းပါဝင်သည်။ debugging ပြီးနောက်ဂရုတစိုက်ပြန်လည်စတင်ရန်သို့မဟုတ်အသုံးပြုရန်အကြံပြုသည်။

5 ။ stream_resolve_intude_intude_path () ကိုတိကျစွာရှာဖွေရန်

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 တွင်အဘယ်ကြောင့်မတင်ပါ။

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

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());

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