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

Get_includude_path () သည် Chdir () ကိုအသုံးပြုသည်

gitbox 2025-05-26

PHP, chdir () နှင့် get_include_path () တွင်လက်ရှိအလုပ်လုပ်သောလမ်းညွှန်ကိုပြောင်းလဲရန်နှင့်လမ်းကြောင်းကိုအသီးသီးပါ 0 င်ရန်အသုံးပြုသောလွတ်လပ်သောလုပ်ဆောင်မှုနှစ်ခုတွင်ရှိသည်။ ၎င်းတို့သည်အချို့သောသတ်သတ်မှတ်မှတ်အခြေအနေများတွင်၎င်းတို့သည်တိုက်ရိုက်ဆက်နွယ်မှုမရှိပါက၎င်းတို့သည်သီးခြားဖြစ်ရပ်များတွင်၎င်းတို့ကိုအတူတကွအသုံးပြုနိုင်ရန်အထူးသဖြင့်ဖိုင်များသို့မဟုတ် module များကို dynamically လုပ်ရမည်။ ဤဆောင်းပါးသည်ဤလုပ်ငန်းဆောင်တာနှစ်ခုကိုပေါင်းစပ်ပြီးနားလည်ရန်လက်တွေ့ကျသောဥပမာများကိုအသေးစိတ်ရှင်းပြပါမည်။

1 ။ CHDIR () နှင့် get_include_path () ကို နားလည်ပါ။

  • CHDIR (string $ directory) - PHP script ၏လက်ရှိအလုပ်လုပ်နေသောလမ်းညွှန်ကိုပြောင်းလဲရန်အသုံးပြုသည်။ ဤသည်အားလုံးနောက်ဆက်တွဲဆွေမျိုးလမ်းကြောင်းများ၏ resolution ကိုအကျိုးသက်ရောက်လိမ့်မည်။

  • Get_includude_path () - လက်ရှိပါ 0 င်သော athath (path အပါအ 0 င်) သည် Php ၏လမ်းကြောင်းများစုဆောင်းခြင်းကို ခေါ်ယူခြင်း သို့မဟုတ် လိုအပ်သည့် လမ်းကြောင်းများရှာဖွေခြင်းကိုရှာဖွေသည်။

2 ။ နှစ်ခုအကြားခြားနားချက်

CHDIR () သည် script ၏ "အလုပ်လုပ်သောလုပ်ငန်းလမ်းညွှန်" ကိုအကျိုးသက်ရောက်သည်ကိုသတိပြုသင့်သည် ဆိုလိုသည်မှာသင်သည် CHDIR () မှတစ်ဆင့်အလုပ်လုပ်သောလမ်းညွှန်ကိုပြောင်းလဲခြင်းကို ပြောင်းလဲခြင်း သည်အလိုအလျောက်မပြောင်းလဲနိုင်ပါ။

3 ။ ပေါင်းစပ်အသုံးပြုမှုအတွက်ပုံမှန်အခြေအနေများ

Module အရဖိုင်ဖွဲ့စည်းပုံကိုဖွဲ့စည်းသည့် PHP application တစ်ခုရှိသည်ဆိုပါစို့။ module တစ်ခုစီတွင်ကိုယ်ပိုင် subdirectory ရှိသည်။ Runtime တွင်အရင်းအမြစ်ဖိုင်များကိုဖွင့် ရန် မတူညီသော module directory များသို့ပြောင်းလဲရန်သင်မျှော်လင့်ပါသည်

ဤကိစ္စတွင်သင်သည် CHDIR () ကို သုံး. set_include_path မှတဆင့်လမ်းကြောင်းကိုယာယီချိန်ညှိရန် CHDIR () ကိုသုံးနိုင်သည်။

4 ။ နမူနာကုဒ်

 <?php

// လက်ရှိလမ်းညွှန်ဖြစ်ပါတယ်ယူဆ /var/www/html/app
echo "မူရင်းအလုပ်လုပ်လမ်းညွှန်:" . getcwd() . PHP_EOL;
echo "မူရင်းဖြစ်သော include_path:" . get_include_path() . PHP_EOL;

// Module Directory သို့ပြောင်းပါ
$moduleDir = __DIR__ . '/modules/user'; // ရှိသည်ဟုယူဆ modules/user ကေျာ်ရိုး
if (chdir($moduleDir)) {
    echo "မှအလုပ်လုပ်လမ်းညွှန် directory:" . getcwd() . PHP_EOL;

    // အသစ်တစ်ခုကိုထည့်ပါ include_path
    $newIncludePath = get_include_path() . PATH_SEPARATOR . getcwd();
    set_include_path($newIncludePath);

    echo "သစ်သော include_path:" . get_include_path() . PHP_EOL;

    // ဖိုင်များကို module ထဲထည့်ရန်ကြိုးစားပါ
    include 'profile.php'; // profile.php အတွက်တည်ရှိ modules/user ဆင်းလျက်

} else {
    echo "အလုပ်လုပ်လမ်းညွှန်သို့ပြောင်းရန်မအောင်မြင်ပါ。" . PHP_EOL;
}

5 ။ ပတ်ဝန်းကျင်ကိုပြန်ယူပါ

အလုပ်လုပ်ခြင်းလမ်းညွှန်ကိုပြောင်းလဲပြီးပါ 0 င်သည့်အခါ,

 <?php

// ကန ဦး အလုပ်လုပ်လမ်းညွှန်ကိုမှတ်တမ်းတင်နှင့် include_path
$initialCwd = getcwd();
$initialIncludePath = get_include_path();

// ...လမ်းညွှန်မှအပြောင်းအလဲများကိုလုပ်ဆောင်ခြင်းနှင့် include_path ခဲှစိတ်ကုသမှု...

// ဇာတ်ညွှန်း၏အဆုံးမှာပတ်ဝန်းကျင် restore
chdir($initialCwd);
set_include_path($initialIncludePath);

6 ။ URL အရင်းအမြစ်များနှင့်အတူအသုံးပြုခြင်း

တစ်ခါတစ်ရံတွင် module တွင်အချို့သောဖိုင်များသည် API တောင်းဆိုမှုများသို့မဟုတ်ရုပ်ပုံဖိုင်များကဲ့သို့သော URLs များမှတဆင့်ပြင်ပအရင်းအမြစ်များကိုဖွင့်ရန်လိုအပ်နိုင်သည်။ CHDIR () သည် file_get_contontents () file_get_controcents ကို မထိခိုက်သော်လည်း Remote URL များသို့ 0 င်ရောက်ခြင်းကိုမထိခိုက်ပါ။

 define('MODULE_API_ENDPOINT', 'https://gitbox.net/api/user');

$response = file_get_contents(MODULE_API_ENDPOINT);

ဤနည်းအားဖြင့်လမ်းညွှန်ကိုပြောင်းလျှင်ပင်ဝေးလံသောခေါ်ဆိုမှုကိုထိခိုက်လိမ့်မည်မဟုတ်ပါ။

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

Get_includude_Path () နှင့် chdir () chdir () သည်လွတ်လပ်သော PHP စီမံကိန်းများတွင်လွတ်လပ်သောနေရာချထားမှုများပြုလုပ်နိုင်သည်, ဤနှစ်ခုကိုအတူတကွအသုံးပြုသည်ကိုကျွမ်းကျင်ခြင်းသည်ပိုမိုထိရောက်သော PHP စီမံကိန်းတည်ဆောက်ပုံကိုပိုမိုရှင်းလင်းစွာတည်ဆောက်ရန်ကူညီလိမ့်မည်။