Vzdevki razredov za imenske prostore v OOP v PHP

Recimo, da imamo dva razreda Data, ki pripadata različnim imenskim prostorom. Recimo, da v nekem razredu potrebujemo objekte obeh teh razredov:

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

Recimo, da smo se odločili poenostaviti klice razredov z ukazom use. V tem primeru nas čaka težava: oba razreda imata ime Data, kar pomeni, da bomo imeli konflikt imen:

/project/test.php<?php
  namespace Project;
  
  // Prišlo bo do konflikta imen:
  use \Core\Users\Data; // povežemo prvi razred
  use \Core\Admin\Data; // povežemo drugi razred
  
  class Test
  {
    public function __construct()
    {
      $data1 = new Data;
      $data2 = new Data;
    }
  }
?>

Za rešitev te težave obstaja poseben ukaz as, ki omogoča nastavitev vzdevka povezanemu razredu - ime, pod katerim bo ta razred dostopen v tej datoteki. Izvedimo preimenovanje naših razredov 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

Poenostavite naslednjo kodo z uporabo use:

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

Poenostavite naslednjo kodo z uporabo use:

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