လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Get_includude_path () ကိုသတ်မှတ်ပြီးနောက်တွင်လမ်းကြောင်းကိုဖြေရှင်းနိုင်သည့်ပြ the နာကိုဖြေရှင်းနိုင်ရန်ပြ the နာကိုဖြေရှင်းပါ

Get_includude_path () ကိုသတ်မှတ်ပြီးနောက်တွင်လမ်းကြောင်းကိုဖြေရှင်းနိုင်သည့်ပြ the နာကိုဖြေရှင်းနိုင်ရန်ပြ the နာကိုဖြေရှင်းပါ

gitbox 2025-05-26

PHP Development တွင်ပါ 0 င်သည့်အခါတွင်ပါ 0 ်ပါက, Get_includude_path () နှင့် set_include_path မှတဆင့် PHP အတွက် PHP အတွက် PHP အတွက်ရှာဖွေရေးနေရာကိုပြောင်းလွယ်ပြင်လွယ်ထိန်းချုပ်နိုင်သည်။ သို့သော် developer များစွာသည်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုအသုံးပြုသောအခါရှုပ်ထွေးသောပြ problem နာတစ်ခုနှင့်မကြာခဏကြုံတွေ့ရလေ့ရှိသည် - လမ်းကြောင်းကိုသတ်မှတ်ထား သည့် လမ်းကြောင်းကိုမတွေ့ရှိနိုင်သေး ပါ ။ ဒါဘာကြောင့်လဲ

မကြာခဏမေးသောမေးခွန်းများ

ဥပမာအားဖြင့်, သင်၏ကုဒ်သည်ဤကဲ့သို့ဖြစ်နိုင်သည် -

 set_include_path('/var/www/html/libs');
include 'myLibrary.php';

သင် /var/www/html/libs/mybs/mybs/mybrary.php တည်ရှိသည်ကိုသင်အတည်ပြုသည်။ သို့သော်အောက်ပါအမှားများဖြစ်ပေါ်လာသည်။

 Warning: include(myLibrary.php): failed to open stream: No such file or directory

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

 echo get_include_path();

output ကို:

 /var/www/html/libs

ဆိုလိုသည်မှာလမ်းကြောင်းကိုအမှန်အတိုင်းမှန်ကန်စွာသတ်မှတ်ထားခြင်းဖြစ်သည်, သို့သော်ဖိုင်ကိုအဘယ်ကြောင့်မတွေ့ရသေးသနည်း။

ပြ the နာ၏အမြစ်

set_includude_path () setting ပြီးနောက်အလုပ်မလုပ်ရတဲ့အကြောင်းရင်းများစွာရှိတယ်။

1 ။ ထည့်သွင်းပါ,

အကယ်. သင်သည်မတော်တဆဖြ ည့်စွက် ပြီးနောက်တစ်နေရာရာကိုတစ်နေရာရာတွင်အစားထိုးလိုက်လျှင်,

 set_include_path('/var/www/html/libs');
// အခြားကုဒ်များ...
set_include_path('.');

နောက်ဆက်တွဲ settings သည်ယခင်လမ်းကြောင်းကိုထပ်ခါထပ်ခါရေးထားလိမ့်မည်။

ဖြေရှင်းချက် -

လမ်းကြောင်းတစ်ခုကိုအသုံးချသောအခါ Path_separator ကိုမူလလမ်းကြောင်းကို splice လုပ်ရန် Path_separator ကိုသုံးပါ။

 set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/html/libs');

2 ။ ပကတိလမ်းကြောင်းကိုအသုံးပြုခဲ့ပေမယ့်ခွင့်ပြုချက်မှန်ကန်စွာသတ်မှတ်ထားကြသည်မဟုတ်

Path ကိုမှန်ကန်စွာသတ်မှတ်ထားလျှင်ပင် PHP သည် directory သို့မဟုတ် file ကိုရယူရန်ခွင့်ပြုချက်မရှိပါက၎င်းသည်ပျက်ကွက်ရန်ပါ 0 င်လိမ့်မည်။

ဖြေရှင်းချက် -

Target Directory နှင့် files များ၏ခွင့်ပြုချက်များသည် PHP အသုံးပြုသူများကို PHP အသုံးပြုသူများကိုဖတ်ရှုနိုင်ကြောင်းအတည်ပြုပါ။

 chmod -R 755 /var/www/html/libs

3 ။ disable လုပ်ထားတဲ့ function ကိုသို့မဟုတ် configuration ကန့်သတ်

အချို့သောဆာဗာ configurations များတွင် Open_basedir သည် PHP ကိုကန့်သတ်ထားနိုင်သည်

ဖြေရှင်းချက် -

php.ini တွင် open_basedi configuration ကိုစစ်ဆေးပါ။

 open_basedir = /var/www/html/:/tmp/

သင်သတ်မှတ်ထားသည့်ပါ 0 င်သည့်လမ်းစဉ် / www / html / libs တို့ ပါ 0 င်ရန်သေချာစေရန်လိုအပ်သည်။

4 ။ မှားယွင်းသောဖိုင်အမည်သို့မဟုတ်လမ်းကြောင်းစာလုံးပေါင်းကိုအသုံးပြုခဲ့သည်

၎င်းသည်အခြေခံအကျဆုံးဖြစ်သော်လည်းအလွယ်ဆုံးပြ issue နာဖြစ်သည်။ ဥပမာအားဖြင့်, ဖိုင်အမည်အသာအမှားများ, Path စာလုံးပေါင်းသည်မမှန်ကန်ပါ။ Linux System များတွင် Mylibrary.php နှင့် Mylibrary.php တွင်မတူကွဲပြားသောဖိုင်များဖြစ်သည်။

မှန်ကန်သော setup ကိုဥပမာ

/var/www/html/libs/libs/Functions.php တွင်ရှိသောဖိုင်တစ်ခုထည့်သွင်းလိုပါကသင်၏ကုဒ်သည် /var/www/html/public/index/index.php တွင်ရှိသည်ဆိုပါစို့။

 set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/html/libs');
include 'functions.php';

ပိုမိုကောင်းမွန်သောချဉ်းကပ်နည်းသည်ဖြန့်ကျက်သည့်လမ်းကြောင်းအပြောင်းအလဲများကိုရှောင်ရှားရန် __Dir__ နှင့်ပေါင်းစပ်ထားသောလမ်းကြောင်းများကို __Dir__ နှင့်ပေါင်းစပ်ရန်ဖြစ်သည်။

 set_include_path(get_include_path() . PATH_SEPARATOR . __DIR__ . '/../libs');
include 'functions.php';

သို့မဟုတ် spl_autoload_register () ကို သုံး. Class ဖိုင်များ၏အလိုအလျောက် 0 ယ်ယူရန်

 spl_autoload_register(function ($class) {
    include $class . '.php';
});

နှင့် Search Directory ကို set_includude_path ဖြင့်သတ်မှတ်ပါ။

 set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/html/libs');

သိကောင်းစရာများ - Debugging Assistant

Php PhP ကိုရှာဖွေနေသည်ကိုအတည်ပြုရန်သင်သည် get_include_path () ကိုပုံနှိပ်ထုတ်လွှင့်နိုင်ပြီး stream_resolve_pathinude_intude_intude_path () ကိုသုံးနိုင်သည်။

 echo stream_resolve_include_path('functions.php');

၎င်းသည်လမ်းကြောင်းကိုမသတ်မှတ်ထားပါ, ဖိုင်သည်မတည်ရှိ, မရှိကိုလျင်မြန်စွာဆုံးဖြတ်ရန်ကူညီနိုင်သည်။

အကျဉ်းချုပ်

setting item_path အလုပ်မလုပ်ပါဘူး, လမ်းကြောင်းများ overwleds များ overwleds များ, ခွင့်ပြုချက်မလုံလောက်ခြင်း, ပြင်ဆင်ခြင်းကန့်သတ်ချက်များ, ဤပြ problem နာအမျိုးအစားကိုဖြေရှင်းရန်သော့ချက်မှာ -

  • get_include_path () + path_separator ကို overwrite လုပ်မည့်အစားနောက်ဆက်တွဲရန်။

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

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

  • STORESHOLVE_INCLUDUDEDLude_APhinude_Path () ကိုဖြေရှင်းရန် Subsolve_Path () ကိုအသုံးပြုပါ။

ဤကျွမ်းကျင်မှုများကိုကျွမ်းကျင်ပြီးသည့်နောက်တွင်သင်သည်သင်၏ Code ၏ Modularity နှင့်ထိန်းသိမ်းမှုကိုပိုမိုကောင်းမွန်စေရန်သင်၏ PHP Project ဖွဲ့စည်းပုံကိုပိုမိုကောင်းမွန်စေပြီးပိုမိုပြောင်းလွယ်ပြင်လွယ်စေရန်သင်ပိုမိုကောင်းမွန်အောင် ပြုလုပ်နိုင် သည်။

ဥပမာများပိုမိုများပြားသောသို့မဟုတ်အရင်းအမြစ်စီမံခန့်ခွဲမှုအတွက်အကောင်းဆုံးအလေ့အကျင့်များ, အလည်အပတ်ခရီး