လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> set_includude_path function ကိုအသုံးပြုပြီး directory လမ်းကြောင်းများစွာကို dynamically

set_includude_path function ကိုအသုံးပြုပြီး directory လမ်းကြောင်းများစွာကို dynamically

gitbox 2025-06-04

1 ။ set_includude_path ကဘာလဲ?

Set_includude_path သည် PHP built-in function တစ်ခုဖြစ်ပြီးလက်ရှိ script runtime အတွက်လမ်းကြောင်းကိုထည့်သွင်းထားသည်။ ပါ 0 င်သောလမ်းကြောင်းသည် PHP မှအသုံးပြုသောနေရာများစာရင်းတွင်ပါ 0 င် ခြင်း ,

Set_includude_path ဖြင့်ဤလမ်းကြောင်းများကိုသင် ပြောင်းလဲ. အစားထိုးနိုင်သည်။


2 ။ set_includude_path နှင့်အတူလမ်းညွှန်မျိုးစုံကို drivonically အပိုငျးကျကျထည့်သွင်းနည်း?

ဥပမာ, လမ်းကြောင်းတွင်ထည့်သွင်းရန်လိုအပ်သည့်လမ်းညွှန်များစွာရှိသည်ဆိုပါစို့။

  • / var / www / စီမံကိန်း / lib

  • / var / www / စီမံကိန်း / မော်ဒယ်များ

  • / var / www / စီမံကိန်း / ကူညီသူများကို

အောက်ပါနည်းလမ်းများကိုသင် dynamically ကိုသင်ထည့်နိုင်သည်။

 <?php
// ပထမ ဦး ဆုံးတွင်လက်ရှိပါ 0 င်သည့်လမ်းကြောင်းကိုရယူပါ
$currentPath = get_include_path();

// directory ထည့်သွင်းပြောကြားခဲ့သည်,အများအပြားလမ်းညွှန်များသည်PATH_SEPARATORခဲှခြားခြင်း
$newPaths = '/var/www/project/lib' . PATH_SEPARATOR .
            '/var/www/project/models' . PATH_SEPARATOR .
            '/var/www/project/helpers';

// ရှိပြီးသားလမ်းကြောင်းမှ directory အသစ်ကိုဖြည့်စွက်
set_include_path($currentPath . PATH_SEPARATOR . $newPaths);

// အတည်ပြုရလဒ်များ
echo get_include_path();
?>

ဤကုဒ်သည်လက်ရှိပါ 0 င်သည့်လမ်းကြောင်းကိုပထမဆုံးထည့်သွင်းထားပြီး,


3 ။ dynamically path ခင်းကျင်းနှင့် add

တစ်ခါတစ်ရံ directory လမ်းကြောင်းသည် dynamic or array မှလာသည်, အောက်ပါနည်းလမ်းကိုသုံးနိုင်သည်။

 <?php
$dirs = [
    '/var/www/project/lib',
    '/var/www/project/models',
    '/var/www/project/helpers',
];

// လက်ရှိပါ 0 င်သောလမ်းကြောင်းကိုရယူပါ
$currentPath = get_include_path();

// string ကို array ပြောင်းပါ,အသုံးပြုPATH_SEPARATORကွဲ
$newPaths = implode(PATH_SEPARATOR, $dirs);

// အသစ်တစ်ခုကိုထည့်သွင်းပါ,method ကိုပေါင်းထည့်ခြင်း
set_include_path($currentPath . PATH_SEPARATOR . $newPaths);

// ရလဒ်များကိုကြည့်ပါ
echo get_include_path();
?>

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


4 ။ လက်တွေ့ကျွမ်းကျင်မှု

1 ။ စီမံကိန်းအစားထိုးကုသမှုကိုလွယ်ကူချောမွေ့စေရန်ဆွေမျိုးလမ်းကြောင်းများကိုသုံးပါ

စီမံကိန်းကိုပြောင်းရွှေ့သွားသောအခါလမ်းကြောင်းမှားယွင်းသွားသောအခါလမ်းကြောင်းမှားယွင်းသွားနိုင်ရန်အတွက် __Dir__ သို့မဟုတ် dirname (__ file__) အပေါ် အခြေခံ. ဆွေမျိုးလမ်းကြောင်းများအသုံးပြုရန်အကြံပြုသည်။

 <?php
$dirs = [
    __DIR__ . '/lib',
    __DIR__ . '/models',
    __DIR__ . '/helpers',
];
set_include_path(get_include_path() . PATH_SEPARATOR . implode(PATH_SEPARATOR, $dirs));
?>

2 ။ ပုံမှန်အားဖြင့် Overwriting ကိုကာကွယ်ရန်မူရင်းလမ်းကြောင်းကိုထားပါ

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

3 ။ spl_autoload_register နှင့်အတူအလိုအလျောက်တင်ရန်

Set_includude_path နှင့် တွဲဖက်. Class ဖိုင်တင်ရန်လွယ်ကူစေရန်အလိုအလျောက်တင်ထားသောယန္တရားကိုသုံးပါ။

 <?php
set_include_path(get_include_path() . PATH_SEPARATOR . __DIR__ . '/lib');

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

4 ။ Restore_incloude_Path () ကို အချိန်မီပြန်လည်ရယူရန်အသုံးပြုပါ

အကယ်. အချို့သော scripts များသည်ပါ 0 င်သောလမ်းကြောင်းကိုသာယာယီပြုပြင်မွမ်းမံပါက default state သို့ပြန်သွားရန် Execute_incleudude_Path () ကိုဖုန်းဆက်နိုင်သည်။


V. ပြီးပြည့်စုံသောဥပမာ

 <?php
// dynamically မျိုးစုံလမ်းညွှန်များထည့်ပါinclude_path
$directories = [
    __DIR__ . '/lib',
    __DIR__ . '/models',
    __DIR__ . '/helpers',
];

// လက်ရှိပါ 0 င်သောလမ်းကြောင်းကိုရယူပါ
$currentIncludePath = get_include_path();

// အသစ်သောလမ်းကြောင်းပေါင်းစည်း
$newIncludePath = $currentIncludePath . PATH_SEPARATOR . implode(PATH_SEPARATOR, $directories);

// အသစ်တစ်ခုကိုထည့်သွင်းပါ
set_include_path($newIncludePath);

// ပုံနှိပ်စစ်ဆေးမှုအတည်ပြုရန်
echo "လက်ရှိပါ 0 င်သည့်လမ်းကြောင်းဖြစ်သည်:\n";
echo get_include_path();
?>

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

  • Set_includude_path ကို PHP scripts လည်ပတ်ရန်လမ်းကြောင်းကိုသတ်မှတ်ရန်အသုံးပြုသည်။

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

  • system default လမ်းကြောင်းကို overwrite လုပ်ရန် get_include_path မှတစ်ဆင့်လမ်းကြောင်းများကိုအရှိန်အဟုန်ဖြင့် ရယူ. ဖြည့်စွက်ပါ။

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

  • စီမံခန့်ခွဲမှုနှင့်စီမံကိန်းရွှေ့ပြောင်းမှုကိုလွယ်ကူချောမွေ့စေရန်ဆွေမျိုးလမ်းကြောင်းများနှင့်လမ်းညွှန်ခင်းကျင်းများကိုအသုံးပြုရန်အကြံပြုသည်။

Set_includude_Path ကို ပြောင်းလွယ်ပြင်လွယ်ဖြင့်သင်၏ PHP Project ဖိုင်တင်ခြင်းသည်ပိုမိုထိရောက်စွာပိုမိုထိရောက်စွာထိရောက်ပြီးကုဒ်ပြုပြင်ထိန်းသိမ်းမှုတိုးတက်ကောင်းမွန်လာလိမ့်မည်။