PHP-də OOP-də Adlar Fəzasında Sinif Ləqəbləri

Tutaq ki, bizim iki Data sinfimiz var, hansı ki, müxtəlif ad fəzalarına aiddir. Tutaq ki, hansısa sinifdə bizə hər iki sinfin obyektləri lazımdır:

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

Tutaq ki, biz use əmri ilə sinif çağırışlarını sadələşdirməyə qərar verdik. Bu halda bizi problem gözləyir: hər iki sinfin adı Data-dır, bu isə o deməkdir ki, bizdə adlar toqquşması olacaq:

/project/test.php<?php
  namespace Project;
  
  // Adlar toqquşması olacaq:
  use \Core\Users\Data; // birinci sinfi qoşuruq
  use \Core\Admin\Data; // ikinci sinfi qoşuruq
  
  class Test
  {
    public function __construct()
    {
      $data1 = new Data;
      $data2 = new Data;
    }
  }
?>

Bu problemi həll etmək üçün xüsusi as əmri var, hansı ki, qoşulan sinfə ləqəb təyin etməyə imkan verir - bu sinfin bu faylda hansı ad altında mövcud olacağını. Gəlin bizim Data siniflərimizi yenidən adlandıraq:

/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

Aşağıdakı kodu use istifadə edərək sadələşdirin:

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

Aşağıdakı kodu use istifadə edərək sadələşdirin:

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