Pseudonimet e Klasave për Hapësirat e Emrave në OOP në PHP

Le të supozojmë se kemi dy klasa Data, që i përkasin hapësirave të ndryshme të emrave. Le të themi se në një klasë të caktuar na duhen objektet e të dy këtyre klasave:

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

Le të themi se kemi vendosur të thjeshtojmë thirrjet e klasave përmes komandës use. Në këtë rast, ne do të përballemi me një problem: të dyja klasat kanë emrin Data, dhe kjo do të thotë se do të kemi një konflikt emërish:

/project/test.php<?php
  namespace Project;
  
  // Do të ketë konflikt emërish:
  use \Core\Users\Data; // lidhim klasën e parë
  use \Core\Admin\Data; // lidhim klasën e dytë
  
  class Test
  {
    public function __construct()
    {
      $data1 = new Data;
      $data2 = new Data;
    }
  }
?>

Për zgjidhjen e këtij problemi ekziston një komandë e veçantë as, e cila lejon të caktohet klasës që po lidhet një pseudonim - një emër, nën të cilin ky klasë do të jetë i disponueshëm në këtë skedar. Le të kryejmë riemërtimin e klasave tona 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

Thjeshtoni kodin e mëposhtëm duke përdorur use:

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

Thjeshtoni kodin e mëposhtëm duke përdorur use:

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