Alias Kelas untuk Namespace di OOP PHP

Misalkan kita memiliki dua kelas Data, yang termasuk dalam namespace yang berbeda. Misalkan dalam suatu kelas kita membutuhkan objek dari kedua kelas tersebut:

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

Misalkan kita memutuskan untuk menyederhanakan pemanggilan kelas melalui perintah use. Dalam hal ini, kita akan menghadapi masalah: kedua kelas memiliki nama Data, yang berarti akan terjadi konflik nama:

/project/test.php<?php
  namespace Project;
  
  // Akan terjadi konflik nama:
  use \Core\Users\Data; // menghubungkan kelas pertama
  use \Core\Admin\Data; // menghubungkan kelas kedua
  
  class Test
  {
    public function __construct()
    {
      $data1 = new Data;
      $data2 = new Data;
    }
  }
?>

Untuk mengatasi masalah ini, terdapat perintah khusus as, yang memungkinkan kita untuk memberikan alias kepada kelas yang dihubungkan - sebuah nama, di mana kelas ini akan dapat diakses dalam file ini. Mari kita lakukan pengubahan nama untuk kelas-kelas Data kita:

/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

Sederhanakan kode berikut dengan menggunakan use:

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

Sederhanakan kode berikut dengan menggunakan use:

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