Klasų pseudonimai vardų erdvėse OOP PHP

Tarkime, kad turime dvi klases Data, priklausančias skirtingoms vardų erdvėms. Tarkime, kad tam tikroje klasėje mums reikia abiejų šių klasių objektų:

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

Tarkime, kad nusprendėme supaprastinti klasių iškvietimus naudojant komandą use. Šiuo atveju mūsų laukia problema: abi klasės turi vardą Data, o tai reiškia, kad turėsime vardų konfliktą:

/project/test.php<?php
  namespace Project;
  
  // Bus vardų konfliktas:
  use \Core\Users\Data; // prijungiame pirmąją klasę
  use \Core\Admin\Data; // prijungiame antrąją klasę
  
  class Test
  {
    public function __construct()
    {
      $data1 = new Data;
      $data2 = new Data;
    }
  }
?>

Šiai problemai išspręsti yra skirta speciali komanda as, leidžianti prijungtai klasei suteikti pseudonimą - vardą, kuriuo ši klasė bus pasiekiama šiame faile. Performinkime mūsų klases 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

Supaprastinkite šį kodą naudodami use:

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

Supaprastinkite šį kodą naudodami use:

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