Псевдоними класа за просторе имена у ООП у ПХП-у

Претпоставимо да имамо две класе 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;
    }
  }
?>