PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်စရိုက်သည်တစ်ခုတည်းသောအမွေကိုအမွေတနျ့ကန့်သတ်ချက်များကို ဖြတ်. ဖြတ်သန်းနိုင်ပြီးအတန်းမျိုးစုံကိုတူညီသောအလုပ်လုပ်သောကုဒ်များကိုမျှဝေရန်ခွင့်ပြုသည်။ သို့သော်စရိုက်များကိုအသုံးပြုသောအခါ developer များက "သတ်မှတ်ထားသောလက်ခဏာကိုမတွေ့ရသေး" စသည့်အမှားများကိုမကြာခဏကြုံတွေ့ရလေ့ရှိသည်။ ဤဆောင်းပါးသည်ဤအမှား၏ဘုံအကြောင်းများကိုခွဲခြမ်းစိတ်ဖြာပြီးထိရောက်သောဖြေရှင်းနည်းများပေးလိမ့်မည်။
စရိုက်များသည်အမွေဘဲကုဒ်ကိုပြန်လည်အသုံးပြုခြင်းကိုဖွင့်ရန်ဒီဇိုင်းပြုလုပ်ထားသည်။ စရိုက်များမှတစ်ဆင့်ကျွန်ုပ်တို့သည်ဘုံယုတ္တိဗေဒအချို့ကိုချုံ့ပြီး၎င်းကိုအတန်းမျိုးစုံသို့တိုက်ရိုက်မိတ်ဆက်ပေးနိုင်သည်။ ဤချဉ်းကပ်နည်းသည်ကုဒ်ပြန်သုံးမှုနှုန်းကိုတိုးတက်စေသည်သာမကဖွဲ့စည်းပုံကိုပိုမိုရှင်းလင်းစေသည်။
စရိုက်လက်ခဏာမတွေ့ရှိရသည့်အသုံးအများဆုံးအကြောင်းပြချက်များမှာမမှန်ကန်သောဖိုင်လမ်းကြောင်းသို့မဟုတ် namespace ဖြစ်သည်။ ရိုဖမ်း၏ namespace သည်တည်ရှိရာလမ်းညွှန်ဖွဲ့စည်းပုံနှင့်ကိုက်ညီသင့်သည်, ၎င်းကိုအသုံးပြုသောအခါ အသုံးပြုမှု ကြေညာချက်မှတစ်ဆင့်မှန်ကန်စွာမိတ်ဆက်ပေးမည်ဖြစ်သည်။
namespace App\Controllers;
use App\Traits\MyTrait;
class MyController {
use MyTrait;
// ကုဒ်၏အခြားအမျိုးအစားများ
}
အထက်ပါဥပမာတွင်စရိုက်လက္ခဏာများကို app / traits / mytrait.php တွင်သိမ်းဆည်းထားသင့်သည် ။ အကယ်. လမ်းကြောင်းသို့မဟုတ် namespace မကိုက်ညီပါက PHP သည်စရိုက်ကိုမှန်ကန်စွာဖွင့်နိုင်လိမ့်မည်မဟုတ်ပါ။
နောက်ထပ်ဘုံပြ problem နာတစ်ခုမှာရိုဗ်အိုအမည်များကိုလွဲချော်နေသည်။ PHP သည်စာလုံးအကြီးအသေးအရေးကြီးသည်။ ထို့ကြောင့်စရိုက်တစ်ခုစတင်မိတ်ဆက်သောအခါ, စာလုံးပေါင်းအမှားများကြောင့်စရိုက်ကိုရှာမတွေ့နိုင်သောအော်တိုပြီးစီးခြင်းလုပ်ဆောင်မှုကိုအသုံးပြုရန်အကြံပြုသည်။
ဤအမှားကိုစီမံကိန်းတွင်မပါ 0 င်ပါကဤအမှားလည်းဖြစ်နိုင်သည်။ ကျေးဇူးပြုပြီး ဂိုးသော့ချက် စာလုံးသည်စရိုက်ဖိုင်တွင်မှန်ကန်စွာသတ်မှတ်ပြီးဖိုင်ကိုမှန်ကန်စွာတင်သွင်းထားကြောင်းအတည်ပြုပါ။
ထို့အပြင်စရိုက်များတွင်နည်းစနစ်ပ conflicts ိ ပက်ခများရှိသည့်အခါ,
trait TraitA {
// Trait Aလုံးပေါင်းပြဌါန်းသည့်ဉပဒေ
}
trait TraitB {
// Trait Bလုံးပေါင်းပြဌါန်းသည့်ဉပဒေ
}
class MyClass {
use TraitA, TraitB {
TraitB::method insteadof TraitA;
}
}
ဤနည်းအားဖြင့်သင်သည်မည်သည့်နည်းလမ်းကိုပ conflict ိပက်ခဖြစ်လျှင်မည်သည့်နည်းလမ်းကိုအသုံးပြုမည်နည်းဟုသင်သတ်မှတ်နိုင်သည်။
အမှားတစ်ခု "သတ်မှတ်ထားသောလက်ခဏာမတွေ့ရသေး" ပါကအောက်ပါရှုထောင့်များမှသင်ဖြေရှင်းနိုင်သည်။
အထက်ဖော်ပြပါနည်းလမ်းများကိုတစ်ခုစီစစ်ဆေးရန်အထက်ပါနည်းလမ်းများကိုလိုက်နာခြင်းအားဖြင့်ပြ problem နာသည်အများအားဖြင့်တည်ရှိပြီးဖြေရှင်းနိုင်သည်။ ဒီဆောင်းပါးကစရိုက်များကိုအသုံးပြုခြင်းကိုပိုမိုနားလည်သဘောပေါက်ခြင်းနှင့်အလားတူအမှားများကိုရှောင်ရှားရန်ဤဆောင်းပါးသည်သင်ကူညီနိုင်လိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။