Aliasuri pentru clase în spații de nume în OOP în PHP

Să presupunem că avem două clase Data, care aparțin unor spații de nume diferite. Să presupunem că într-o anumită clasă avem nevoie de obiecte din ambele clase:

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

Să presupunem că am decis să simplificăm apelurile claselor prin comanda use. În acest caz ne așteaptă o problemă: ambele clase au numele Data, ceea ce înseamnă că vom avea un conflict de nume:

/project/test.php<?php
  namespace Project;
  
  // Va fi conflict de nume:
  use \Core\Users\Data; // conectăm prima clasă
  use \Core\Admin\Data; // conectăm a doua clasă
  
  class Test
  {
    public function __construct()
    {
      $data1 = new Data;
      $data2 = new Data;
    }
  }
?>

Pentru a rezolva această problemă există o comandă specială as, care permite setarea unui alias pentru clasa conectată - un nume sub care această clasă va fi accesibilă în acest fișier. Să efectuăm redenumirea claselor noastre 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

Simplificați următorul cod folosind use:

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

Simplificați următorul cod folosind use:

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