PHP-тегі ООП-да use командасы және есім кеңістіктері

Бізде келесі Data класы бар делік:

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

Сондай-ақ, ішінде Data класының объектілерін жасайтын Page класы бар делік:

/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 командасын қолданып, клас мұрагерлік кодты жеңілдетіңіз.