Klassi pseudonüümid nimeruumide jaoks OOP-s PHP-s

Oletame, et meil on kaks klassi Data, kuuluvad erinevatesse nimeruumidesse. Oletame, et mõnes klassis vajame mõlema klassi objekte:

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

Oletame, et otsustasime lihtsustada klasside kutsumist käsu use abil. Sel juhul ootab meid probleem: mõlemal klassil on nimi Data, see tähendab, et meil on nimekonflikt:

/project/test.php<?php
  namespace Project;
  
  // Tekib nimekonflikt:
  use \Core\Users\Data; // ühendame esimese klassi
  use \Core\Admin\Data; // ühendame teise klassi
  
  class Test
  {
    public function __construct()
    {
      $data1 = new Data;
      $data2 = new Data;
    }
  }
?>

Selle probleemi lahendamiseks on olemas spetsiaalne käsk as, mis võimaldab määrata ühendatavale klassile pseudonüümi - nime, mille all see klass selles failis kättesaadav on. Teeme oma klassidele Data ümbernimetuse:

/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

Lihtsustage järgnevat koodi kasutades use:

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

Lihtsustage järgnevat koodi kasutades use:

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