PHP OOP-daky ad meýdanlarynda klass lakaplary

Bizde iki sany Data klassy bolsun, olara dürli ad meýdanlaryna degişli. Bir klassyň içinde bu iki klasyň hem objektlerine biz gerek bolsun:

/project/test.php<?php
  namespace Project;
  
  class Test
  {
    public function __construct()
    {
      $data1 = new \Core\Users\Data; // objekt döredýäris
      $data2 = new \Core\Admin\Data; // objekt döredýäris
    }
  }
?>

Biz klaslary çagyrmagy use buýrugy arkaly ýeňilleşdirmek isleýändigimizi aýdalym. Bu ýagdaýda biziň garşymyza bir problema çykar: iki klas hem Data atly, bu bolsa atlar çaknyşygynyň boljakdygyny aňladýar:

/project/test.php<?php
  namespace Project;
  
  // Atlar çaknyşygy bolar:
  use \Core\Users\Data; // birinji klasy birikdirýäris
  use \Core\Admin\Data; // ikinji klasy birikdirýäris
  
  class Test
  {
    public function __construct()
    {
      $data1 = new Data;
      $data2 = new Data;
    }
  }
?>

Bu meseläni çözmek üçin ýörite as buýrugy bar, ol birikdirilýän klassa lakap bermäge - bu faýlda klasyna şu at bilen girip boljakdygyny - rugsat berýär. Biz öz Data klaslarymyzyň atlaryny çalışalyň:

/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

Aşakdaky kody use ulanyp, ýeňilleşdiriň:

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

Aşakdaky kody use ulanyp, ýeňilleşdiriň:

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