PHP စီမံကိန်းများဖွံ့ဖြိုးတိုးတက်ရေးကာလအတွင်းအတန်းအစားဖိုင်များတွင်မတွေ့ရသည့်အမှားတစ်ခုသည်ပြ problem နာအမျိုးအစားတစ်ခုဖြစ်သည်။ များသောအားဖြင့် Class ကိုခေါ်သည့်အခါ PHP သည်၎င်း၏သက်ဆိုင်ရာဖိုင်ကိုမှန်ကန်စွာမရှာနိုင်ပါ။ ဤပြ problem နာ၏အကြောင်းရင်းများနှင့်သက်ဆိုင်ရာဖြေရှင်းချက်များကိုအောက်ပါအရွယ်အစားအမျိုးမျိုးမှခွဲခြမ်းစိတ်ဖြာလိမ့်မည်။
အသုံးအများဆုံးအကြောင်းပြချက်မှာ File Path Configuration အမှားများဖြစ်သည်။ ကျွန်ုပ်တို့သည်လမ်းကြောင်းမှန်ကိုမှန်ကန်စွာသတ်မှတ်ရန်သေချာစေရန်အတန်းဖိုင်များကိုဖွင့်ရန်အကြွင်းမဲ့အာဏာသို့မဟုတ်ဆွေမျိုးလမ်းကြောင်းများကိုသုံးနိုင်သည်။
ဥပမာအားဖြင့်, Class File ကိုတင်ရန်အကြွင်းမဲ့လမ်းကြောင်းများကိုသုံးပါ။
require_once('/var/www/html/myproject/MyClass.php');
ဆွေမျိုးလမ်းကြောင်းများကိုအသုံးပြုသောအခါ, လက်ရှိ script file ၏တည်နေရာနှင့်အညီချိန်ညှိရန်လိုအပ်သည်။
require_once('../myproject/MyClass.php');
built-in စဉ်ဆက်မပြတ် __dir__ ကို ပေါင်းစပ်ခြင်းသည်ပိုမိုပြောင်းလွယ်ပြင်လွယ်လမ်းကြောင်းပြ problems နာများကိုကိုင်တွယ်နိုင်သည်။
require_once(__DIR__.'/../myproject/MyClass.php');
ထို့အပြင် PHP သည် Class File အမည်များကိုအသိအမှတ်ပြုရာတွင်အမှုအရေးပေါ်အထိခိုက်မခံကြောင်းသတိပြုသင့်သည်။ ထို့ကြောင့်ဖိုင်အမည်များသည်အမှန်တကယ်ဖိုင်နှင့်ကိုက်ညီရမည်။
PHP သည် spl_autoload_register () function ကိုထောက်ပံ့ပေးသည်။ ၎င်းသည်အလိုအလျောက်တင်ထားသောလုပ်ဆောင်ချက်များကိုမှတ်ပုံတင်ရန်အသုံးပြုသည်။ အတန်းကိုချက်ချင်းမစတင်ဘဲမိတ်ဆက်ခြင်းမရှိပါက PHP သည် class file ကိုတင်ရန်ကြိုးစားရန် function ကိုအလိုအလျောက်ခေါ်ဆိုလိမ့်မည်။
function myAutoload($className) {
$classFile = __DIR__ . '/' . $className . '.php';
if (file_exists($classFile)) {
require_once $classFile;
} else {
echo 'အတန်းဖိုင်ကိုရှာမရပါ ' . $classFile;
}
}
spl_autoload_register('myAutoload');
အလိုအလျောက်တင်ဆောင်သည့်ယန္တရားကိုအသုံးပြုခြင်းသည်မိတ္တူကူးရန် antile_once ထုတ်ပြန်ချက်များကိုလျှော့ချနိုင်ရုံသာမကစီမံကိန်းဖွဲ့စည်းပုံနှင့် Code ထိန်းသိမ်းရေးဆိုင်ရာရှင်းလင်းချက်ကိုလည်းတိုးတက်စေသည်။
ပ conflicts ိပက်ခများကိုရှောင်ရှားရန်အမည်များ, လုပ်ဆောင်ချက်များစသည်များကိုထိရောက်စွာစီမံခန့်ခွဲနိုင်သည်။ Namespace ကိုကြေငြာရန်နှင့်လိုအပ်သောအတန်းများကိုမိတ်ဆက်ရန် The One Keyword ကို သုံးရန် NAMESSSARE ကိုအသုံးပြုသည်။
ဥပမာအားဖြင့်, Class ဖိုင်တွင်သတ်မှတ်ထားသော namespace သည်အောက်ပါအတိုင်းဖြစ်သည် -
namespace MyProject;
class MyClass {
// အတန်းအစားအဓိပ္ပါယ်
}
အတန်းကိုခေါ်သည့်အခါအပြည့်အဝ namespace လမ်းကြောင်းကိုအသုံးပြုသင့်သည်။
use MyProject\MyClass;
$obj = new MyClass();
မှတ်ချက် - NAMESPARE ၏ကြေငြာချက်နှင့်ရည်ညွှန်းချက်သည်တသမတ်တည်းဖြစ်ရမည်။
PHP သည် "သတ်မှတ်ထားသောအတန်းအစားဖိုင်ကိုရှာမတွေ့ပါ" ဟူသောအချက်များသည် Path အမှားများ, အတန်းအစားများမတင်ခြင်း, ဤပြ problem နာအမျိုးအစားကိုအလိုအလျောက်တင်ဆောင်သည့်ယန္တရားများကို အသုံးပြု. လမ်းကြောင်းဆက်တင်များကိုစစ်ဆေးခြင်းနှင့်ကျိုးကြောင်းဆီလျော်သောအမည်များကိုအသုံးပြုခြင်းအားဖြင့်ထိရောက်စွာရှောင်ရှားနိုင်သည်။ ဖွံ့ဖြိုးတိုးတက်မှုကာလအတွင်းစီမံကိန်းတည်ဆောက်ပုံကိုစံသတ်မှတ်ရန်နှင့်ဖွံ့ဖြိုးတိုးတက်မှုထိရောက်မှုကိုတိုးတက်စေရန်အချိန်နှင့်တပြေးညီ IDE Tools များလုပ်ဆောင်မှုကိုပေါင်းစပ်ရန်အကြံပြုသည်။