Каманда use і прасторы імён у ААП у PHP

Хай у нас ёсць наступны клас Data:

/core/admin/data.php<?php
  namespace \Core\Admin;
  
  class Data
  {
    public function __construct($num)
    {
      
    }
  }
?>

Хай таксама ёсць клас Page, які стварае ўнутры сябе аб'екты класа Data:

/users/page.php<?php
  namespace Users;
  
  class Page
  {
    public function __construct()
    {
      $data1 = new \Core\Admin\Data('1');
      $data2 = new \Core\Admin\Data('2');
    }
  }
?>

Як вы бачыце, абодва нашы класы знаходзяцца ў зусім розных прасторах імён, таму выклікі класа Data спрасціць нельга, падобна таму, як мы гэта рабілі ў папярэднім уроку. Гэтыя выклікі, аднак, вельмі доўгія і нязручныя, бо ў кожным выкліку класа Data даводзіцца паказваць яго доўгае прастора імён.

Для вырашэння падобнай праблемы існуе спецыяльная каманда use. З дапамогай гэтай каманды дастаткова адзін раз падключыць клас па яго поўным імі, і пасля гэтага можна будзе звяртацца да гэтага класа проста па імі класа. Глядзіце прыклад:

/users/page.php<?php
  namespace Users;
  use \Core\Admin\Data; // падключаем клас
  
  class Page extends Controller
  {
    public function __construct()
    {
      $data1 = new Data('1'); // выклікаем проста па імі
      $data2 = new Data('2'); // выклікаем проста па імі
    }
  }
?>
Задание 1

Спрасціце наступны код з выкарыстаннем use:

php<?php
  namespace Project;
  
  class Test
  {
    public function __construct()
    {
      // Ствараем 3 аб'екты аднаго класа:
      $data1  = new \Core\Users\Data('user1');
      $data2  = new \Core\Users\Data('user3');
      $data3  = new \Core\Users\Data('user3');
    }
  }
?>
Задание 2

Даныя наступныя класы:

php<?php
  namespace Core\Admin;
  
  class Controller
  {
    
  }
?>
php<?php
  namespace Users;
  
  class Page extends \Core\Admin\Controller
  {
    
  }
?>

Спрасціце код наследавання класа, прымяніўшы каманду use.