PHP တွင်အလိုအလျောက်တင်ခြင်းဆိုသည်မှာပရိုဂရမ်တစ်ခုသည်အတန်းတစ်ခုစီကိုအသုံးပြုရန်လိုအပ်သည့်အခါ PHP သည်အတန်း၏အဓိပ္ပါယ်ဖွင့်ဆိုချက်ကိုအလိုအလျောက်ဖွင့်လိမ့်မည်ဟုဆိုလိုသည်။ PHP သည် built-in autooloading ယန္တရားများကိုထောက်ပံ့ပေးသည်။ အသုံးအများဆုံးလုပ်ဆောင်ချက်နှစ်ခုမှာ spl_autoload_register နှင့် spl_autoload_Unregister တို့ဖြစ်သည်။ ဤလုပ်ဆောင်ချက်နှစ်ခုတွင်အလားတူအမည်များရှိသော်လည်း၎င်းတို့၏လုပ်ဆောင်ချက်များနှင့်အသုံးပြုမှုသည်အလွန်ကွဲပြားခြားနားသည်။ ဤဆောင်းပါးသည်၎င်းတို့၏လုပ်ဆောင်ချက်များနှင့်ကွဲပြားခြားနားမှုများကိုပိုမိုနားလည်စေရန်အတွက်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုအသေးစိတ်လေ့လာပြီးခွဲခြမ်းစိတ်ဖြာပါလိမ့်မည်။
SPP_Autoload_register သည် Autoloading လုပ်ဆောင်ချက်များကိုမှတ်ပုံတင်ရန် PHP တွင်စံသတ်မှတ်ချက်ဖြစ်သည်။ ဤလုပ်ဆောင်မှုမှတစ်ဆင့် developer များကအလိုအလျောက်တင်ထားသော callback function များကိုတစ်ခုသို့မဟုတ်တစ်ခုထက် ပို. သတ်မှတ်နိုင်သည်။ ပရိုဂရမ်တွင် undefined class တစ်ခုပေါ်လာသည့်အခါ PHP သည်သက်ဆိုင်ရာလူတန်းစားဖိုင်ကိုတင်ရန်ဤ callback function များကိုခေါ်ဆိုလိမ့်မည်။
 <span><span><span class="hljs-title function_ invoke__">spl_autoload_register</span></span><span>(function(</span><span><span class="hljs-variable">$class</span></span><span>) {
    </span><span><span class="hljs-comment">// အလိုအလျောက်တင်ယုတ္တိဗေဒ,ဥပမာအားဖြင့်:ဖိုင်များပါဝင်သည်</span></span><span>
    </span><span><span class="hljs-keyword">include_once</span></span><span> </span><span><span class="hljs-string">'classes/'</span></span><span> . </span><span><span class="hljs-variable">$class</span></span><span> . </span><span><span class="hljs-string">'.php'</span></span><span>;
});
</span></span>ဤဥပမာတွင် Spl_autoload_register သည် အမည်မသိ function ကိုမှတ်ပုံတင်သည်။ အတန်းကိုရှာမတွေ့ပါက၎င်းသည်သက်ဆိုင်ရာလူတန်းစားဖိုင်ကိုရှာဖွေရန် အတန်းများ ဖိုင်တွဲသို့အလိုအလျောက်သွားလိမ့်မည်။
spl_autoload_Unregise သည်မှတ်ပုံတင်ထားသောမှတ်ပုံတင်ခြင်းမှထွက်ရန်အသုံးပြုသော PHP တွင်အလိုအလျောက် loading function ဖြစ်သည်။ ဤလုပ်ဆောင်မှုမှတစ်ဆင့် developer များက SPL_Autoload_register တွင်မှတ်ပုံတင်ထားသောအလိုအလျောက်ဝန်ပြန်ငွေကိုကိုယ်တိုင်ဖယ်ရှားနိုင်သည်။
 <span><span><span class="hljs-variable">$splAutoloadFunction</span></span><span> = </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$class</span></span></span><span>) {
    </span><span><span class="hljs-keyword">include_once</span></span><span> </span><span><span class="hljs-string">'classes/'</span></span><span> . </span><span><span class="hljs-variable">$class</span></span><span> . </span><span><span class="hljs-string">'.php'</span></span><span>;
};
</span><span><span class="hljs-title function_ invoke__">spl_autoload_register</span></span><span>(</span><span><span class="hljs-variable">$splAutoloadFunction</span></span><span>);
</span><span><span class="hljs-comment">// ဒီအလိုအလျောက်တင်မရှိတော့မရှိတော့ပါ,ကထဲက log နိုင်ပါတယ်</span></span><span>
</span><span><span class="hljs-title function_ invoke__">spl_autoload_unregister</span></span><span>(</span><span><span class="hljs-variable">$splAutoloadFunction</span></span><span>);
</span></span>အထက်ပါကုဒ်တွင် Autoload callback function ကိုပထမ ဦး ဆုံးမှတ်ပုံတင်ပြီး spl_autoload_Unregister ကိုနောက်ပိုင်းတွင်မှတ်ပုံတင်ပါ။ Logging လုပ်ပြီးနောက် PHP သည်ဤ callback function ကိုအတန်းကိုဖွင့်ရန်ဖုန်းဆက်လိမ့်မည်မဟုတ်ပါ။
| သီးခြားထင်ရှားသော | SPL_Autoload_Register | spl_autoload_Unregister | 
|---|---|---|
| လုပ်ဆောင်ချက် | Automatic Loading function ကိုမှတ်ပုံတင်ပါ | အလိုအလျောက်တင်ထားသော function ကိုထွက်ပါ | 
| အသုံးပြု | Autoload Quick သို့ Autoload Quick သို့ Autoload ၏အာဏာကိုထည့်ပါ | Autoload Queue မှမှတ်ပုံတင်ထားသော Autoload function ကိုဖယ်ရှားခဲ့သည် | 
| တေးရေး | callback function ကိုသို့မဟုတ်နည်းလမ်းကိုလက်ခံပါ | မှတ်ပုံတင်ထားသော callback function ကိုသို့မဟုတ်နည်းလမ်းကိုလက်ခံပါ | 
| Value ကိုပြန်သွားပါ | ဘာမှျ | ဘာမှျ | 
မှတ်ပုံတင်ခြင်းနှင့်ဖျက်သိမ်းခြင်း၏အခန်းကဏ် : spl_autoload_register သည် သင် အတန်း၏ 0 န်ဆောင်မှုအတွက် callback function ကိုသတ်မှတ်ရန်ခွင့်ပြုသည်။ ယခင်သည်များသောအားဖြင့်အတန်းထဲသို့ 0 င်ရောက်ခြင်းယန္တရားအသစ်များကိုလျှောက်လွှာထဲသို့ထည့်ရန်အသုံးပြုသည်။
Call Order : Spl_autoload_registers မျိုးစုံကိုမှတ်ပုံတင်သည့်အခါ PHP သည်၎င်းတို့မှတ်ပုံတင်ထားသောအမိန့်တွင် php ကိုခေါ်ယူလိမ့်မည်။ အကယ်. callback function ကို class definity ကိုရှာဖွေပါကနောက်ဆက်တွဲ callback function ကိုရပ်တန့်သွားလိမ့်မည်။ STS_Autoload_Unregister သည် လိုအပ်သည့်အခါလိုအပ်သည့်အခါလိုအပ်သော callback function ကိုဖယ်ရှားရန်ခွင့်ပြုသည်။
PHP script တစ်ခုလုံးကိုသက်ရောက်စေသည့် အပြည့်အစုံ ကိုကမ္ဘာအနှံ့အပြားတွင်အလိုအလျောက် 0 န်ဆောင်မှုအသစ်အတွက်အလိုအလျောက်တင်ဆောင်လာသောယုတ္တိဗေဒအသစ်ကိုမှတ်ပုံတင်သည် ။ spl_autoload_Unregise သည် callback function ကိုရွေးချယ်ပြီး Php အလိုအလျောက် 0 န်ဆောင်မှုပေးရန်အပြုအမူကိုပြောင်းလဲစေခြင်း။
အချို့သောကိစ္စရပ်များတွင် Autoload callback function ကိုမှတ်ပုံတင်ရန် SPL_AUTOALOAD_Register ကို သုံးရန်လိုအပ်ပေမည်။ ဥပမာအားဖြင့်:
Dynamic switching loading Logic : အချို့သောရှုပ်ထွေးသောစီမံကိန်းများတွင်မတူညီသောအော်တိုတင်သော 0 န်ဆောင်မှုယန္တရားများကိုမတူညီသောပတ်ဝန်းကျင်တွင်ဖြစ်စေ, spl_autoload_Unregister ဖြင့်သင် Runtime တွင်မလိုအပ်တော့သည့် Autoload function ကိုဖယ်ရှားပြီး loading logic ဖြင့်အစားထိုးနိုင်သည်။
Debugging နှင့် Troubleshooting : Debugging လုပ်ငန်းစဉ်အတွင်းအလိုအလျောက် 0 င်ရောက်ခြင်းလုပ်ဆောင်ချက်တစ်ခုတွင်ပြ a နာတစ်ခုရှိသေးသည်ဟုသင်သံသယရှိပါက,
Redundant Loading ကိုလျှော့ချပါ ။
spl_autoload_register နှင့် spl_autoload_Unregister သည် PHP တွင် autoload နှင့်သက်ဆိုင်သောလုပ်ဆောင်ချက်များဖြစ်သည်။ ယခင်က autooloading ယန္တရားကိုမှတ်ပုံတင်ရန်အသုံးပြုသည်။ အဆုံးတွင်မလိုအပ်တော့ပါ။ ၎င်းတို့၏လုပ်ဆောင်ချက်များနှင့်သက်ဆိုင်သည့်အခြေအနေများကိုနားလည်လွယ်လွယ်လွယ်ပြင်လွယ်။ ထိရောက်သောအလိုအလျောက်ဝန်ဆောင်မှုများကိုတည်ဆောက်ရန်အလွန်အရေးကြီးသည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် SPL_Autoload_register သည်အသုံးများသောအသုံးပြုမှုတစ်ခုဖြစ်သည် ။
ဤလုပ်ဆောင်ချက်နှစ်ခုကိုအသုံးပြုခြင်းသည်သင်၏ပရောဂျက်တွင်လူတန်းစားတင်ခြင်းကိုပိုမိုကောင်းမွန်စွာစီမံခန့်ခွဲနိုင်ပြီးသင်၏ကုဒ်၏ထိန်းသိမ်းမှုနှင့်ပြောင်းလွယ်ပြင်လွယ်မှုကိုတိုးတက်စေသည်။