PHP တွင် OOP Namespace များအတွက် Class အမည်ပြောင်းများ
ကျွန်ုပ်တို့တွင် အမည်နေရာ (namespace) အမျိုးမျိုးမှ သက်ဆိုင်သော
Data class နှစ်ခုရှိသည်ဆိုပါစို့။
တစ်ခုခုသော class တစ်ခုအတွင်း၌ ထို class နှစ်ခုလုံး၏
object များလိုအပ်သည်ဆိုပါစို့:
<?php
namespace Project;
class Test
{
public function __construct()
{
$data1 = new \Core\Users\Data; // object ဖန်တီးသည်
$data2 = new \Core\Admin\Data; // object ဖန်တီးသည်
}
}
?>
use command ကို အသုံးပြု၍ class များခေါ်ယူခြင်းကို
ရိုးရှင်းအောင်ပြုလုပ်ရန် ဆုံးဖြတ်သည်ဆိုပါစို့။
ဤအခြေအနေတွင် ကျွန်ုပ်တို့ ကြုံတွေ့ရမည့် ပြဿနာမှာ
class နှစ်ခုလုံးတွင် Data ဟူသော အမည်ရှိခြင်းဖြစ်ပြီး၊
ဆိုလိုသည်မှာ အမည်များ ထပ်နေခြင်း ဖြစ်ပေလိမ့်မည်:
<?php
namespace Project;
// အမည်များ ထပ်နေခြင်း ဖြစ်လိမ့်မည်:
use \Core\Users\Data; // ပထမ class ကို ချိတ်ဆက်သည်
use \Core\Admin\Data; // ဒုတိယ class ကို ချိတ်ဆက်သည်
class Test
{
public function __construct()
{
$data1 = new Data;
$data2 = new Data;
}
}
?>
ဤပြဿနာကိုဖြေရှင်းရန် as ဟူသော အထူး command
တစ်ခုရှိပြီး၊ ၎င်းသည် ချိတ်ဆက်လိုက်သော class ကို
အမည်ပြောင်း တစ်ခု - ဤဖိုင်အတွင်း၌ ထို class
အသုံးပြုနိုင်မည့် အမည် - သတ်မှတ်ခွင့်ပေးသည်။
ကျွန်ုပ်တို့၏ Data class များကို အမည်ပြန်သတ်မှတ်ကြပါစို့:
<?php
namespace Project;
use \Core\Users\Data as UsersData;
use \Core\Admin\Data as AdminData;
class Test
{
public function __construct()
{
$data1 = new UsersData;
$data2 = new AdminData;
}
}
?>
use ကိုအသုံးပြု၍ အောက်ပါကုဒ်ကို ရိုးရှင်းအောင်ပြုလုပ်ပါ:
<?php
namespace Project;
class Test
{
public function __construct()
{
$pageController = new \Resource\Controller\Page;
$pageModel = new \Resource\Model\Page;
}
}
?>
use ကိုအသုံးပြု၍ အောက်ပါကုဒ်ကို ရိုးရှင်းအောင်ပြုလုပ်ပါ:
<?php
namespace Project\Data;
class Test
{
public function __construct()
{
$pageController = new \Project\Data\Controller\Page;
$pageModel = new \Project\Data\Model\Page;
}
}
?>