ခေတ်သစ် PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကုဒ်၏ဖတ်နိုင်မှုနှင့်ထိန်းသိမ်းခြင်းသည်အလွန်အရေးကြီးသည်။ PHP7 မှမိတ်ဆက်ပေးသော NAMSTARE နှင့်အလိုအလျောက်တင်ထားသောယန္တရားသည် developer များကိုကုဒ်စုစည်းရန်နှင့်စီမံခန့်ခွဲရန်ပိုမိုကောင်းမွန်သောနည်းလမ်းဖြင့်ပေးသည်။ ဤလုပ်ဆောင်မှုများကိုကျိုးကြောင်းဆီလျော်စွာအသုံးပြုခြင်းအားဖြင့် developer များက Naming ပ conflicts ိပက်ခများကိုလျှော့ချနိုင်ပြီးကုဒ်ဖွဲ့စည်းပုံကိုတိုးတက်စေနိုင်သည်။ ဤဆောင်းပါးသည် PHP ကုဒ်ကိုပိုမိုကောင်းမွန်စေရန် PHP7 ၏ namespace နှင့် autoloading ယန္တရားကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်နိဒါန်းပေးမည်။
Namespaces သည်ပ conflict ိပက်ခများပြ issues နာများကိုဖြေရှင်းရန်ထိရောက်သောနည်းလမ်းဖြစ်သည်။ PHP တွင်, စာတန်းများ, interfaces များ, လုပ်ဆောင်မှုများနှင့်ကိန်းစုများကို encapsulate encapsulate လုပ်ရန်အမည်များကိုအသုံးပြုသည်။ ၎င်းသည်သက်ဆိုင်ရာကုဒ်များကိုကျိုးကြောင်းဆီလျော်စွာစုစည်းနိုင်အောင်ကူညီနိုင်ပြီးကုဒ်၏ကွဲပြားခြားနားသောအစိတ်အပိုင်းများအကြားပ conflicts ိပက်ခများကိုရှောင်ရှားရန်နှင့်ကုဒ်၏ဖတ်နိုင်မှုကိုတိုးတက်အောင်ကူညီနိုင်သည်။
'namespace`' သော့ချက်စာလုံးမှတဆင့် namespace ကိုသတ်မှတ်နိုင်ပြီးအောက်ပါဥပမာသည်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။
namespace appontrollers; <p>usercontroller {<br> // လူတန်းစားအကောင်အထည်ဖော်မှု ...<br> }<br>
ဤဥပမာတွင်ကျွန်ုပ်တို့သည် `appontrollers` ဟုခေါ်သော namespace တစ်ခုနှင့်` usercontroller ၏အတန်းကိုဖန်တီးသည်။ ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်အခြားအတန်းအစားကိုရည်ညွှန်းသည့်အခါအခြားအတန်းများသို့မဟုတ်လုပ်ဆောင်ချက်များနှင့်ပ conflicts ိပက်ခများကိုရှောင်ရှားနိုင်သည်။
PHP7 သည်စည်းလုံးညီညွတ်သောအလိုအလျောက်တင်ဆောင်သည့်ယန္တရားကိုထောက်ပံ့ပေးသည်။ PHP သည်သက်ဆိုင်ရာဖိုင်ကိုအတန်းအစားအမည်အရအလိုအလျောက်ဖွင့်လိမ့်မည်။
Custom Autoleading function များကို `spl_autoload_register ()` function ကိုမှတဆင့်မှတ်ပုံတင်နိုင်သည်။ ဒီမှာနမူနာကုဒ်တစ်ခုပါ။
spl_autoload_register (function ကို ($ classname) { $ ClassName = strow_replace ("\\", "/", $ classname); // backslash ကို Slash $ classfile = __dir__ ဖြင့်အစားထိုးလိုက်ပါ။ '/' ။ $ classname ။ '.php'; // splice file path (file_exists) one_once $ classfile; } });
ဤဥပမာတွင် `spl_autoload_register () function ကို` function သည် function backslash (`` `` `) နှင့် class file ၏လမ်းကြောင်းကိုအစားထိုးသည့်အမည်မသိ function ကိုမှတ်ပုံတင်သည်။
Namespaces နှင့် autoloading ယန္တရားများကိုမည်သို့ပေါင်းစပ်ရမည်ကိုပိုမိုကောင်းမွန်သောသရုပ်ဖော်ရန်, ရိုးရှင်းသောဥပမာတစ်ခုဖြင့်ကျွန်ုပ်တို့တင်ပြသည်။ ဤဥပမာတွင်ကျွန်ုပ်တို့သည် namespace နှစ်ခုကိုဖန်တီးသည် - `appontrollers and` appmoders များနှင့် appmodels` အသီးသီး, Controller နှင့်မော်ဒယ်အတန်းများကိုစီမံခန့်ခွဲခြင်းအတွက်) အသီးသီး။
ပထမ ဦး စွာကျွန်ုပ်တို့သည် `appcontrollers`s namespace အောက်ရှိ` usercontroller ၏အတန်းကိုဖန်တီးသည်။
namespace appontrollers; <p>Appmodels \ USermodel ကိုသုံးပါ။</p> <p>usercontroller {<br> အများပြည်သူ function listusers () {)<br> $ Usermodel = USERMADDED အသစ် ();<br> $ users = $ userermodel-> Getallers ();<br> // လုပ်ငန်းစဉ်အသုံးပြုသူစာရင်းအချက်အလက်များကိုနှင့်ပြန်လာ .../<br> }<br> }<br>
ထို့နောက် `appmodels` namespace အောက်ရှိ` usermodel ၏အတန်းကိုဖန်တီးပါ။
namespace appmodel; <p>Usermodel အတန်းအစား<br> အများပြည်သူ function ကို getallers () {)<br> // အသုံးပြုသူစာရင်းကိုဒေတာဘေ့စ်တွင်မေးမြန်းပါ။<br> $ access ကိုပြန်ပို့;<br> }<br> }<br>
နောက်ဆုံးအနေနဲ့ `spl_autoload_register ()` `Autoload function ကိုမှတ်ပုံတင်ပြီး Controller Class မှတဆင့်အသုံးပြုသူနှင့်သက်ဆိုင်သည့်ယုတ္တိဗေဒကိုကိုင်တွယ်ရန်ကျွန်ုပ်တို့သည်`
Appcontrollers \ Usercontroller ကိုသုံးပါ။ <p>$ UserController = UserController အသစ် (),<br> $ usercontroller-> listusers ();<br>
အထက်ပါအဆင့်များဖြင့်ကျွန်ုပ်တို့သည် Namespace နှင့်အလိုအလျောက်တင်ဆောင်သည့်ယန္တရားများပေါင်းစပ်မှုကိုအောင်မြင်စွာအောင်မြင်စွာအောင်မြင်နိုင်ပြီးကုဒ်ဖွဲ့စည်းပုံကိုအကောင်းဆုံးဖြစ်စေပြီးစာဖတ်နိုင်မှုနှင့်ထိန်းသိမ်းခြင်းနှင့်ထိန်းသိမ်းခြင်း။
PHP7 ၏ namespace နှင့်အလိုအလျောက် 0 န်ဆောင်မှုပေးသည့်ယန္တရားကိုအသုံးပြုခြင်းသည်ကုဒ်၏ဖတ်နိုင်မှုနှင့်ထိန်းသိမ်းခြင်းကိုထိရောက်စွာတိုးတက်စေနိုင်သည်။ ပ conflicts ိပက်ခများကိုရှောင်ရှားရန် Namespace သည်အတန်းများ, ဆက်သွယ်ရေးလုပ်ငန်းများ, အလိုအလျောက်တင်ဆောင်သည့်ယန္တရားသည်လူတန်းစားဖိုင်များကိုကိုယ်တိုင်မိတ်ဆက်ပေးရန်နှင့်မလိုအပ်သောကုဒ်များကိုလျှော့ချရန်လိုအပ်ကြောင်းဖယ်ရှားပေးသည်။ ဒီလုပ်ဆောင်ချက်နှစ်ခုကိုပေါင်းစပ်ပြီး code ကိုစီမံခန့်ခွဲရန်နှင့်စီးပွားရေးယုတ္တိဗေဒဆိုင်ရာဖွံ့ဖြိုးတိုးတက်မှုကိုအာရုံစိုက်ရန်ပိုမိုလွယ်ကူစွာရေးသားနိုင်သည်။