Псевдоними на класове за именни пространства в ООП в PHP

Нека имаме два класа Data, принадлежащи на различни именни пространства. Нека в някакъв клас ни трябват обекти и от двата класа:

/project/test.php<?php
  namespace Project;
  
  class Test
  {
    public function __construct()
    {
      $data1 = new \Core\Users\Data; // създаваме обект
      $data2 = new \Core\Admin\Data; // създаваме обект
    }
  }
?>

Нека решим да опростим извикванията на класовете чрез командата use. В този случай ни очаква проблем: и двата класа имат име Data, а това означава, че ще имаме конфликт на имена:

/project/test.php<?php
  namespace Project;
  
  // Ще има конфликт на имена:
  use \Core\Users\Data; // свързваме първия клас
  use \Core\Admin\Data; // свързваме втория клас
  
  class Test
  {
    public function __construct()
    {
      $data1 = new Data;
      $data2 = new Data;
    }
  }
?>

За решаване на този проблем съществува специална команда as, позволяваща да се зададе на свързания клас псевдоним - име, под което този клас ще бъде достъпен в този файл. Нека преименуваме нашите класове 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

Опростете следния код с използване на use:

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

Опростете следния код с използване на use:

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