Aliasy tried pre menové priestory v OOP v PHP

Majme dve triedy Data, ktoré patria do rôznych menných priestorov. Predpokladajme, že v nejakej triede potrebujeme objekty oboch týchto tried:

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

Predpokladajme, že sme sa rozhodli zjednodušiť volania tried pomocou príkazu use. V tomto prípade nás čaká problém: obe triedy majú názov Data, čo znamená, že budeme mať konflikt mien:

/project/test.php<?php
  namespace Project;
  
  // Nastane konflikt mien:
  use \Core\Users\Data; // pripojíme prvú triedu
  use \Core\Admin\Data; // pripojíme druhú triedu
  
  class Test
  {
    public function __construct()
    {
      $data1 = new Data;
      $data2 = new Data;
    }
  }
?>

Na vyriešenie tohto problému existuje špeciálny príkaz as, ktorý umožňuje pripojovanej triede nastaviť alias - názov, pod ktorým bude táto trieda prístupná v tomto súbore. Poďme premenovať naše triedy 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 nasledujúci kód pomocou use:

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

Zjednodušte nasledujúci kód pomocou use:

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