PHP да ООП да Номлар Фазосида Классларнинг Лакаблари

Фарз қилайлик, бизда турли номлар фазосига тегишли иккита Data класси мавжуд. Фарз қилайлик, бирор классда бизга шу икки класснинг ҳам объектлари керак:

/project/test.php<?php
  namespace Project;
  
  class Test
  {
    public function __construct()
    {
      $data1 = new \Core\Users\Data; // объект яратамиз
      $data2 = new \Core\Admin\Data; // объект яратамиз
    }
  }
?>

Фарз қилайлик, биз use буйруғи орқали класслар чақирувларни соддалаштиришга қарор қилдик. Бунда бизни муаммо кутмоқда: икки класснинг ҳам номи Data, демак, бизда номлар зиддияті пайдо бўлади:

/project/test.php<?php
  namespace Project;
  
  // Номлар зиддияті пайдо бўлади:
  use \Core\Users\Data; // биринчи классни улаймиз
  use \Core\Admin\Data; // иккинчи классни улаймиз
  
  class Test
  {
    public function __construct()
    {
      $data1 = new Data;
      $data2 = new Data;
    }
  }
?>

Бу муаммони ҳал қилиш учун махсус as буйруғи мавжуд бўлиб, у қуйилаётган классга лакаб беришга имкон беради - ушбу файлда шундай ном остида мавжуд бўлади. Келинг 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

Қуйидаги кодни use дан фойдаланиб соддалаштиринг:

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

Қуйидаги кодни use дан фойдаланиб соддалаштиринг:

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