Aliasy tříd pro jmenné prostory v OOP v PHP

Předpokládejme, že máme dvě třídy Data, které patří do různých jmenných prostorů. Předpokládejme, že v nějaké třídě potřebujeme objekty obou těchto tříd:

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

Předpokládejme, že jsme se rozhodli zjednodušit volání tříd pomocí příkazu use. V tomto případě nás čeká problém: obě třídy mají jméno Data, a to znamená, že budeme mít konflikt jmen:

/project/test.php<?php
  namespace Project;
  
  // Bude konflikt jmen:
  use \Core\Users\Data; // připojíme první třídu
  use \Core\Admin\Data; // připojíme druhou třídu
  
  class Test
  {
    public function __construct()
    {
      $data1 = new Data;
      $data2 = new Data;
    }
  }
?>

Pro řešení tohoto problému existuje speciální příkaz as, který umožňuje nastavit připojované třídě alias - jméno, pod kterým bude tato třída v tomto souboru dostupná. Pojďme přejmenovat naše třídy 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

Zjednodušte následující kód pomocí use:

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

Zjednodušte následující kód pomocí use:

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