PHP တွင် SPP တွင် SPL_AUTOLOAD_Register function သည် developer များအား Class's Loading ယန္တရားအတွက် autooloader ကိုမှတ်ပုံတင်ရန်ခွင့်ပြုသည်။ PHP သည် undefined class ကိုရှာဖွေရန်ကြိုးစားသောအခါမှတ်ပုံတင်ထားသော Autoload function ကိုအတန်းကိုဖွင့်ရန်ဖြစ်သည်။ ဤယန္တရားသည်ကြီးမားသောအသုံးချပရိုဂရမ်များနှင့်မူဘောင်များတွင်အလွန်အသုံးဝင်သည်။ သို့သော်အချို့ဖြစ်ရပ်များတွင်ကျွန်ုပ်တို့သည်အထူးသဖြင့် autoloader များကိုအကြိမ်ပေါင်းများစွာမှတ်ပုံတင်ပါကမှတ်ပုံတင်ထားသော autoloaders အချို့ကိုသန့်ရှင်းရေးလုပ်ရန်သို့မဟုတ်ထွက်ရန်လိုအပ်နိုင်သည်။ Spl_autoload_Unregise သည်ဤလုပ်ငန်းကိုပြီးမြောက်ရန်အသုံးပြုသော function ဖြစ်သည်။
ပထမ ဦး စွာ autoloader ကိုဘယ်လိုမှတ်ပုံတင်ရမလဲဆိုတာကြည့်ရအောင်။ spl_autoload_register ကိုသုံးပြီး PHP ကို autoloader ကိုထောက်ပံ့ပေးနိုင်သည်။ ဤတွင်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။
<span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">my_autoloader</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</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">'.class.php'</span></span><span>;
}
</span><span><span class="hljs-title function_ invoke__">spl_autoload_register</span></span><span>(</span><span><span class="hljs-string">'my_autoloader'</span></span><span>);
</span></span>
ဤဥပမာတွင် Class ကိုဖွင့်ရန်လိုအပ်သည့်အခါ My_Autoloader function ကိုအလိုအလျောက်ဟုအလိုအလျောက်ခေါ်ယူလိမ့်မည် ။
SPL_Autoload_Unregister သည် SPL_Autoload_register ဖြင့်မှတ်ပုံတင်ထားသော autoloader ကိုထွက်ရန်အသုံးပြုသည်။ မလိုအပ်သော autoloader ကိုထုတ်ယူခြင်းအားဖြင့်၎င်းသည် autoloader တွင်အရင်းအမြစ်များကိုဆန့်ကျင်ခြင်းသို့မဟုတ်စွန့်ပစ်ပစ္စည်းများကိုရှောင်ရှားနိုင်သည်။
<span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">spl_autoload_unregister</span></span><span> ( </span><span><span class="hljs-keyword">callable</span></span><span> </span><span><span class="hljs-variable">$autoload_function</span></span><span> )
</span></span>
Parameter $ a autoload_Function သည်သင်ထွက်လိုသော autoloader ၏အမည်ဖြစ်သည်။ ဤလုပ်ဆောင်မှု သည် boolean တန်ဖိုးကိုပြန်လည်ရရှိစေပြီး Logout သည်အောင်မြင်မှုရှိပါက မှန်ကန်သော ,
ကျွန်ုပ်တို့တွင် autoloaders များစွာရှိသည်ဆိုပါစို့။ အချို့သောကိစ္စရပ်များတွင်ကျွန်ုပ်တို့မလိုအပ်တော့သည့် 0 န်ကြီးများကိုသန့်ရှင်းစေလိုသည်။ ဒီမှာဥပမာတစ်ခုပါ။
<span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">my_autoloader1</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</span></span><span> </span><span><span class="hljs-string">'classes1/'</span></span><span> . </span><span><span class="hljs-variable">$class</span></span><span> . </span><span><span class="hljs-string">'.class.php'</span></span><span>;
}
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">my_autoloader2</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</span></span><span> </span><span><span class="hljs-string">'classes2/'</span></span><span> . </span><span><span class="hljs-variable">$class</span></span><span> . </span><span><span class="hljs-string">'.class.php'</span></span><span>;
}
</span><span><span class="hljs-comment">// နှစ်ခု autoloaders နှစ်ခုမှတ်ပုံတင်ပါ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">spl_autoload_register</span></span><span>(</span><span><span class="hljs-string">'my_autoloader1'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">spl_autoload_register</span></span><span>(</span><span><span class="hljs-string">'my_autoloader2'</span></span><span>);
</span><span><span class="hljs-comment">// ပထမ ဦး ဆုံး autoloader ထဲကထွက်ပါ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">spl_autoload_unregister</span></span><span>(</span><span><span class="hljs-string">'my_autoloader1'</span></span><span>);
</span></span>
ဤဥပမာတွင် My_autoloader1 နှင့် My_Autoloader2 နှစ်ခုလုံးသည် autoutoader များအဖြစ်မှတ်ပုံတင်ထားသော်လည်းနောက်ပိုင်းတွင် SPL_Autoload_Unrovister ကို ခေါ်ဆိုခြင်းဖြင့် My_Autoloader1 ကို ထွက်ရန်။ ဤနည်းအားဖြင့် My_Autoloader2 ကို သာအတန်းကိုတင်သောအခါဟုခေါ်လိမ့်မည်။
Autoloader သို့ခေါ်ဆိုမှုများကိုသူတို့မှတ်ပုံတင်ထားသောအမိန့်တွင်ကွပ်မျက်ခံရကြောင်းသတိပြုသင့်သည်။ SPL_Autoload_register ၏အမိန့်သည် PHP သည် PHP သည်အတန်းများကို 0 င်ရန်ကြိုးပမ်းမှုကိုဆုံးဖြတ်သည်။ သင်ဤအမိန့်ကိုပြုပြင်ရန်လိုအပ်ပါက, သင်မတူညီသော ဦး စားပေးတွင် autoloader ကိုမှတ်ပုံတင်ရန်သင်ရွေးချယ်နိုင်သည်။ ဥပမာအားဖြင့်, ဦး စားပေး parameter ကိုဖြတ်သန်းခြင်းအားဖြင့် spl_autoload_register သည် autoloader ၏ ဦး စားပေးဆုံးဖြတ်ရန်ဖြစ်သည်။
<span><span><span class="hljs-title function_ invoke__">spl_autoload_register</span></span><span>(</span><span><span class="hljs-string">'my_autoloader1'</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>); </span><span><span class="hljs-comment">// မြင့်မားသော ဦး စားပေး</span></span><span>
</span><span><span class="hljs-title function_ invoke__">spl_autoload_register</span></span><span>(</span><span><span class="hljs-string">'my_autoloader2'</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>, </span><span><span class="hljs-literal">false</span></span><span>); </span><span><span class="hljs-comment">// ဦး စားပေး</span></span><span>
</span></span>
Autoloaders များမှတ်ပုံတင်ထားသည့်အခါ, အထူးသဖြင့် loader ကိုသန့်ရှင်းရေးလုပ်ရန်သို့မဟုတ်ဝင်ရောက်ရန်အထူးအရေးကြီးသည်။ အကယ်. autoloader အရေအတွက်တိုးများလာပါကပ conflicts ိပက်ခများသို့မဟုတ်မလိုအပ်သောတင်ရန်ဖြစ်စေနိုင်သည်။ ထို့ကြောင့်သင့်လျော်သည့်အခါအသုံးမပြုနိုင်ပါ autoloader ကိုထုတ်လွှတ်သည့်အခါကုဒ်၏စွမ်းဆောင်ရည်နှင့်ထိန်းသိမ်းမှုကိုတိုးတက်စေနိုင်သည်။
ဥပမာအားဖြင့်, သင်ဟာ module တွေကိုမကြာခဏပြောင်းဖူးပြီးတဲ့နောက်မှာ develules တွေကိုမကြာခဏပြောင်းလိုက်ရင်, သင်မသုံးတော့ဘူး autooloader ကိုထွက်ဖို့လိုကောင်းလိုလိမ့်မည်။
<span><span><span class="hljs-title function_ invoke__">spl_autoload_unregister</span></span><span>(</span><span><span class="hljs-string">'old_autoloader'</span></span><span>);
</span></span>
ဤနည်းအားဖြင့်သင်သည်လိုအပ်သော autooloaders များကိုသာ အသုံးပြု. အရင်းအမြစ်များကိုစွန့်ပစ်ခြင်းကိုရှောင်ရှားရန်သေချာစေနိုင်သည်။
Spl_autoload_Unregise သည်သင်ကိုယ်တိုင် autooloaders များကိုအကြိမ်ပေါင်းများစွာမှတ်ပုံတင်ပါက, ဤလုပ်ဆောင်မှုကိုကျိုးကြောင်းဆီလျော်စွာအသုံးပြုခြင်းအားဖြင့်သင်သည် autooloader တွင်ပ conflicts ိပက်ခများနှင့်ပွားများထပ်မံတင်ခြင်းကိုရှောင်ရှားနိုင်ပြီးသင်၏လျှောက်လွှာ၏စွမ်းဆောင်ရည်ကိုတိုးတက်အောင်ပြုလုပ်နိုင်သည်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်အလိုအလျောက် Loader မှတ်ပုံတင်ခြင်းနှင့်ဖျက်သိမ်းခြင်း၏ဆင်ခြင်တုံတရားအသုံးပြုခြင်းသည်ကြီးမားသောကုဒ်အခြေစိုက်စခန်းများအားစီမံခန့်ခွဲရန်, ကုဒ်များကိုပိုမိုပြုပြင်မွမ်းမံခြင်းနှင့်ပြောင်းလွယ်ပြင်လွယ်ရှိစေရန်ကူညီနိုင်သည်။