Osztály álnevek névterekhez OOP-ban PHP-ben

Tegyük fel, hogy van két Data osztályunk, amelyek különböző névterekhez tartoznak. Tegyük fel, hogy valamely osztályban mindkét osztály objektumaira szükségünk van:

/project/test.php<?php
  namespace Project;
  
  class Test
  {
    public function __construct()
    {
      $data1 = new \Core\Users\Data; // objektum létrehozása
      $data2 = new \Core\Admin\Data; // objektum létrehozása
    }
  }
?>

Tegyük fel, hogy le akarjuk egyszerűsíteni az osztályok meghívását a use paranccsal. Ebben az esetben problémába ütközünk: mindkét osztálynak Data a neve, ami azt jelenti, hogy névütközés lesz:

/project/test.php<?php
  namespace Project;
  
  // Névütközés lesz:
  use \Core\Users\Data; // első osztály betöltése
  use \Core\Admin\Data; // második osztály betöltése
  
  class Test
  {
    public function __construct()
    {
      $data1 = new Data;
      $data2 = new Data;
    }
  }
?>

Ennek a problémának a megoldására létezik egy speciális parancs, a as, amely lehetővé teszi a betöltött osztály álnevének megadását - egy olyan név, amely alatt az osztály elérhető lesz ebben a fájlban. Adjunk álnevet a Data osztályainknak:

/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

Egyszerűsítsd a következő kódot a use használatával:

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

Egyszerűsítsd a következő kódot a use használatával:

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