Aliasy klas dla przestrzeni nazw w OOP w PHP

Załóżmy, że mamy dwie klasy Data, należące do różnych przestrzeni nazw. Załóżmy, że w jakiejś klasie potrzebujemy obiektów obu tych klas:

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

Załóżmy, że postanowiliśmy uprościć wywołania klas poprzez komendę use. W tym przypadku czeka nas problem: obie klasy mają nazwę Data, a to oznacza, że będziemy mieli konflikt nazw:

/project/test.php<?php
  namespace Project;
  
  // Będzie konflikt nazw:
  use \Core\Users\Data; // podłączamy pierwszą klasę
  use \Core\Admin\Data; // podłączamy drugą klasę
  
  class Test
  {
    public function __construct()
    {
      $data1 = new Data;
      $data2 = new Data;
    }
  }
?>

Dla rozwiązania tego problemu istnieje specjalna komenda as, pozwalająca nadać podłączanej klasie alias - nazwę, pod którą ta klasa będzie dostępna w tym pliku. Nadajmy przemianowanie naszych klas 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

Uprość następujący kod wykorzystując use:

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

Uprość następujący kod wykorzystując use:

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