PHP တွင် OOP Namespace များအတွက် Class အမည်ပြောင်းများ

ကျွန်ုပ်တို့တွင် အမည်နေရာ (namespace) အမျိုးမျိုးမှ သက်ဆိုင်သော Data class နှစ်ခုရှိသည်ဆိုပါစို့။ တစ်ခုခုသော class တစ်ခုအတွင်း၌ ထို class နှစ်ခုလုံး၏ object များလိုအပ်သည်ဆိုပါစို့:

/project/test.php<?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 ဟူသော အမည်ရှိခြင်းဖြစ်ပြီး၊ ဆိုလိုသည်မှာ အမည်များ ထပ်နေခြင်း ဖြစ်ပေလိမ့်မည်:

/project/test.php<?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 များကို အမည်ပြန်သတ်မှတ်ကြပါစို့:

/project/test.php<?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;
    }
  }
?>
Задание 1

use ကိုအသုံးပြု၍ အောက်ပါကုဒ်ကို ရိုးရှင်းအောင်ပြုလုပ်ပါ:

php<?php
  namespace Project;
  
  class Test
  {
    public function __construct()
    {
      $pageController  = new \Resource\Controller\Page;
      $pageModel       = new \Resource\Model\Page;
    }
  }
?>
Задание 2

use ကိုအသုံးပြု၍ အောက်ပါကုဒ်ကို ရိုးရှင်းအောင်ပြုလုပ်ပါ:

php<?php
  namespace Project\Data;
  
  class Test
  {
    public function __construct()
    {
      $pageController  = new \Project\Data\Controller\Page;
      $pageModel       = new \Project\Data\Model\Page;
    }
  }
?>