Klassenaam aliassen voor namespaces in OOP in PHP

Stel we hebben twee klassen Data, die tot verschillende namespaces behoren. Stel dat we in een bepaalde klasse objecten nodig hebben van beide klassen:

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

Stel dat we besloten hebben de klasse-aanroepen te vereenvoudigen via het commando use. In dit geval wacht ons een probleem: beide klassen hebben de naam Data, wat betekent dat we een naamconflict zullen hebben:

/project/test.php<?php
  namespace Project;
  
  // Er zal een naamconflict zijn:
  use \Core\Users\Data; // verbind de eerste klasse
  use \Core\Admin\Data; // verbind de tweede klasse
  
  class Test
  {
    public function __construct()
    {
      $data1 = new Data;
      $data2 = new Data;
    }
  }
?>

Voor de oplossing van dit probleem bestaat er een speciaal commando as, dat het mogelijk maakt om de verbonden klasse een alias te geven - een naam, onder welke deze klasse beschikbaar zal zijn in dit bestand. Laten we de hernoeming van onze klassen Data uitvoeren:

/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

Vereenvoudig de volgende code met gebruik van use:

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

Vereenvoudig de volgende code met gebruik van use:

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