Klassalias för namnområden i OOP i PHP

Låt oss säga att vi har två klasser Data, som tillhör olika namnområden. Låt oss säga att vi i någon klass behöver objekt från båda dessa klasser:

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

Låt oss säga att vi bestämde oss för att förenkla anropen till klasserna genom kommandot use. I det här fallet möter vi ett problem: båda klasserna har namnet Data, vilket betyder att vi får en namngivningskonflikt:

/project/test.php<?php
  namespace Project;
  
  // Namngivningskonflikt kommer att uppstå:
  use \Core\Users\Data; // ansluter den första klassen
  use \Core\Admin\Data; // ansluter den andra klassen
  
  class Test
  {
    public function __construct()
    {
      $data1 = new Data;
      $data2 = new Data;
    }
  }
?>

För att lösa detta problem finns ett speciellt kommando as, som låter dig ange ett alias för den anslutna klassen - ett namn under vilket denna klass kommer att vara tillgänglig i den här filen. Låt oss byta namn på våra klasser 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

Förenkla följande kod med hjälp av use:

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

Förenkla följande kod med hjälp av use:

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