PHP ရှိ OOP တွင် အလိုအလျောက် Class များ ဖွင့်ခြင်း
Class တစ်ခုခုကို အသုံးပြုရန် ၎င်းကို require ဖြင့်
ခေါ်ယူရမည်ဆိုသည်ကို သင်သိပြီးဖြစ်သည်။
Project တစ်ခုတွင် Class များစွာရှိပါက၊
ခေါ်ယူရမည့် code များစွာရှိလာပြီး ၎င်းတို့ကိုရေးရန်ခက်ခဲကာ
ထိန်းချုပ်ရန်လည်းခက်ခဲသည်။
�ိုပြဿနာကိုဖြေရှင်းရန် PHP တွင် Class များအလိုအလျောက်ဖွင့်ခြင်း ကိုထည့်သွင်းထားသည်။ အလိုအလျောက်ဖွင့်ခြင်းသည် code ထဲတွင် Class တစ်ခုကို ခေါ်ယူသည့်အခါ PHP အား ထို Class ပါသည့် File ကို အလိုအလျောက် ဖွင့်ခွင့်ပြုသည်။ သို့သော် Class များသည် ထိုအတိုင်းအလိုအလျောက်ဖွင့်မည်မဟုတ်။ ၎င်းတို့ကို Website ၏ Folder များအတွင်း File နှင့် Folder အမည်များအတွက် သဘောတူညီချက်တစ်ခုခုကို လိုက်နာကာ အထူးပုံစံဖြင့် ထားရှိရန် လိုအပ်သည်။ PHP ထဲတွင်ပါရှိသည့် သဘောတူညီချက်ကို အသုံးပြုနိုင်သည်၊ သို့မဟုတ် ကိုယ်ပိုင်သဘောတူညီချက်ကို ဖန်တီးပြီး အသုံးပြုနိုင်သည်။
အရင်ဆုံး PHP ၏ စံသဘောတူညီချက်ကို ကြည့်ကြပါစို့။ ဤသဘောတူညီချက်သည် ကျွန်ုပ်တို့တွင် Class ပါသည့် File တစ်ခုရှိပါက၊ Website ၏ Folder များအတွင်း ထို File သို့ရောက်ရှိရန် Path သည် ထို File ၏ Namespace နှင့် ကိုက်ညီရမည်၊ ထို့အပြင် File အမည်သည် ် အတွင်းတွင်ရှိသော Class ၏ အမည်နှင့် ကိုက်ညီရမည် ဖြစ်သည်။ ထို့အပြင် Folder များနှင့် File အမည်များသည် စာလုံးအသေးဖြင့် ရှိရမည်။
ဥပမာတစ်ခုဖြင့် ကြည့်ကြပါစို့။ ကျွန်ုပ်တို့တွင် အောက်ပါ Class ရှိသည်ဆိုပါစို့။
<?php
namespace Core\Admin;
class PageController
{
}
?>
သဘောတူညီချက်အရ ဤ Class သည်
/core/admin/ Folder အတွင်း
pagecontroller.php File ထဲတွင် တည်ရှိရမည်။
ယခု index.php File ထဲတွင် ကျွန်ုပ်တို့၏ Class ကို
require ဖြင့် ခေါ်ယူခြင်းမပြုဘဲ
အလိုအလျောက်ဖွင့်ခြင်းကို အသုံးပြု၍ အသုံးပြုကြည့်ကြပါစို့။
ထိုသို့ပြုလုပ်ရန် Class များကိုခေါ်သည့် File ၏ အစတွင်
spl_autoload_register function ကို ခေါ်ယူရမည်။
ပြုလုပ်ကြည့်ကြပါစို့။
<?php
spl_autoload_register(); // အလိုအလျောက်ဖွင့်ခြင်းကို ဖွင့်ပါ
$obj = new Core\Admin\PageController; // Object ကို စိတ်ချလက်ချ ဖန်တီးပါ
?>
index.php File ထဲတွင် အလိုအလျောက် Class ဖွင့်ခြင်းကို
ဖွင့်ပါ။ Folder နှင့် File အမည်များအတွက် သဘောတူညီချက်ကို
လိုက်နာ၍ Class Core\User၊ Class Core\Admin\Controller နှင့်
Class Project\User\Data တို့ကို ဖန်တီးပါ။
index.php File ထဲတွင် ထို Class များ၏ Object များကို
ဖန်တီးပါ။