Vyeo vya Majina kwa Ajira ya Majina katika OOP katika PHP

Hebu tuchukulie tuna madarasa mawili Data, yakiwa ya ajira tofauti za majina. Hebu tuchukulie katika darasa fulani tunahitaji vitu vya madarasa yote mawili haya:

/project/test.php<?php
  namespace Project;
  
  class Test
  {
    public function __construct()
    {
      $data1 = new \Core\Users\Data; // kuunda kitu
      $data2 = new \Core\Admin\Data; // kuunda kitu
    }
  }
?>

Hebu tuchukulie tumeamua kurahisisha miito ya madarasa kupitia amri use. Katika hali hii, tunatarajiwa na tatizo: madarasa yote mawili yana jina Data, na hii inamaanisha kuwa tutakuwa na mgogoro wa majina:

/project/test.php<?php
  namespace Project;
  
  // Kutakuwa na mgogoro wa majina:
  use \Core\Users\Data; // kuunganisha darasa la kwanza
  use \Core\Admin\Data; // kuunganisha darasa la pili
  
  class Test
  {
    public function __construct()
    {
      $data1 = new Data;
      $data2 = new Data;
    }
  }
?>

Kutatua tatizo hili kuna amri maalum as, inayoruhusu kuweka darasa linalounganishwa kivyo - jina, ambalo darasa hili litapatikana kwa jina hili katika faili hii. Hebu tufanye ubadilishaji-jina wa madarasa yetu Data:

/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

Rahisisha msimbo ufuatao kwa kutumia use:

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

Rahisisha msimbo ufuatao kwa kutumia use:

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