PHP စီမံကိန်းများတွင်တတိယပါတီစာကြည့်တိုက်များကိုမိတ်ဆက်ပေးရန်လိုအပ်ကြောင်းကျွန်ုပ်တို့မကြာခဏကြုံတွေ့ရလေ့ရှိသည်။ ရိုးရာချဉ်းကပ်နည်းသည်စာကြည့်တိုက်ဖိုင်များကိုကိုယ်တိုင်ကိုယ်ကျ မိတ်ဆက် ပေးရန်ဖြစ်သည် , သို့သော်စီမံကိန်း၏ရှုပ်ထွေးမှုတိုးပွားလာသည်နှင့်အမျှတတိယပါတီစာကြည့်တိုက်များသို့လမ်းကြောင်းကိုစီမံခန့်ခွဲခြင်းသည် ပို. ခက်ခဲလာသည်။ ဤဆောင်းပါးသည် Php Built-in functions get_include_path () နှင့် set_include_path () နှင့် set_include_path () နှင့် set_include_path () နှင့် set_include_path () နှင့် set_include_path ()) ကို မည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
သင့်တွင် third-party libraries အမျိုးမျိုးကွဲပြားခြားနားသောလမ်းညွှန်များနှင့်ကွဲပြားခြားနားသော directory များကွဲပြားနေပြီးစာဖြင့်ပြုလုပ်ထားသော စည်းမျဉ်းစည်းကမ်းများ ရေးသားခြင်းသာမကအမှားအယွင်းများကိုကိုယ်တိုင်လည်းကျရောက်စေနိုင်သည်ဆိုပါစို့။ အကောင်းဆုံးနည်းလမ်းမှာ PHP တွင် Third-party library လမ်းညွှန်ကို PHP တွင်ပါ 0 င ် ရန် ,
Get_includude_PATH () - လက်ရှိ PHP ၏လမ်းကြောင်းကိုရယူပါ (system separator များဖြင့်ခွဲထားသည့်လမ်းကြောင်းများစွာကိုခွဲခြားထားသည့်လမ်းကြောင်းများ, Linux / Unix ) သည်အူမကြီးဖြစ်သည် ။
Set_includude_Path ($ Path) - Overwrite လုပ်နိုင်သောသို့မဟုတ်ဖြည့်စွက်နိုင်သောလမ်းကြောင်းကိုထည့်ပါ။
တတိယပါတီစာကြည့်တိုက်၏ directory ကိုထည့်သွင်းပါ။
အလိုအလျောက် loading function ကိုမှတ်ပုံတင်ပါ။ အသုံးပြုမှု တွင် class files များကိုရှာဖွေရန်လမ်းကြောင်းပါ 0 င်ပါ။
လက်စွဲနိဒါန်းကိုရှောင်ရှားရန် Spl_Autoload_register () ကိုအလိုအလျောက်ခေါ်ဆိုပါ။
<?php
// တတိယပါတီစာကြည့်တိုက်ကို Project Root Directory တွင်ထားရှိသည်ဟုယူဆပါvendorမာတိကာ
$vendorPath = __DIR__ . '/vendor';
// 1. လက်ရှိတစ်ခုရယူပါinclude_path
$currentIncludePath = get_include_path();
// 2. ထုပ်ပိုးvendorမာတိကာ追加到include_path,ယခင်လမ်းကြောင်းမပြောင်းလဲစောင့်ရှောက်လော့
set_include_path($currentIncludePath . PATH_SEPARATOR . $vendorPath);
// 3. Automatic Loading function ကိုမှတ်ပုံတင်ပါ
spl_autoload_register(function ($className) {
// Class File Naming နှင့် Namespace စည်းမျဉ်းစည်းကမ်းများဟုယူဆပါ PSR-4 ထုံးနည်း
$file = str_replace('\\', DIRECTORY_SEPARATOR, $className) . '.php';
// အသုံးပြုincludeဖိုင်များကိုရှာပါ,includeအပေါ်အခြေခံလိမ့်မည်include_pathရှာဖေှခြင်း
@include $file;
});
// စမ်းသပ်မှု:တတိယပါတီစာကြည့်တိုက်နှင့်အတူအတန်းတစ်ခုရှိသည်ဆိုပါစို့ ThirdParty\Utils တည်နေ vendor/ThirdParty/Utils.php
use ThirdParty\Utils;
$utils = new Utils();
$utils->doSomething();
တတိယပါတီစာကြည့်တိုက်လမ်းညွှန်များစီမံခန့်ခွဲမှုကိုလွယ်ကူချောမွေ့စေရန် set_include_path () မှတဆင့် dynamically လမ်းကြောင်းကိုပြောင်းလဲပါ။
spl_autoload_register () သည် အတန်းကိုအလိုအလျောက်ဖွင့်သည်,
တတိယပါတီစာကြည့်တိုက်အပြောင်းအလဲများ၏ directory သို့မဟုတ်ဖွဲ့စည်းပုံသည် code များစွာကိုပြုပြင်မွမ်းမံခြင်းမရှိဘဲထည့်သွင်းရန်လမ်းကြောင်းကိုချိန်ညှိရန်သာလိုအပ်သည်။
ဤနည်းလမ်းသည်ကောင်းမွန်သောလိုက်ဖက်ညီမှုရှိပြီးတေးရေးဆရာကိုအားမမူတည်ပါ။ သို့သော်စီမံကိန်းသည်များစွာအပေါ်မူတည်ပါက,
တတိယပါတီစာကြည့်တိုက်များကိုမိတ်ဆက်သောအခါ, စာကြည့်တိုက်ရှိကုဒ်သို့မဟုတ် configuration file (API လိပ်စာများ, အရင်းအမြစ်လင့်များကဲ့သို့သော url access) တွင် url access (ဥပမာ name) ကို Code ကို Code ကိုအစားထိုးနိုင်ပါ။
ဥပမာ -
<?php
function replaceDomainInUrl(string $url): string {
$parsed = parse_url($url);
if (!$parsed || !isset($parsed['host'])) {
return $url;
}
// အဖြစ်ဒိုမိန်းအမည်ကိုအစားထိုးလိုက်ပါ gitbox.net
$newUrl = str_replace($parsed['host'], 'gitbox.net', $url);
return $newUrl;
}
// အသုံးပြု示例
$originalUrl = 'https://example.com/api/data';
$newUrl = replaceDomainInUrl($originalUrl);
echo $newUrl; // ထုတ်လုပ်ခြင်း https://gitbox.net/api/data
ဤနည်းအားဖြင့်၎င်းအားအလိုအလျောက်တင်ဆောင်ခြင်းနှင့်ကြော့ရှင်းခြင်းများကိုစီမံခန့်ခွဲခြင်းသာမကတတိယပါတီစာကြည့်တိုက်များတွင်ပါ 0 င်သော URLs များကိုပြန်လည်နေရာချထားခြင်းများကိုလွယ်ကူချောမွေ့စေသည်။