PHP'de OOP İsim Alanlarında Sınıf Takma Adları

Diyelim ki farklı isim alanlarına ait iki Data sınıfımız var. Bir sınıfta her iki sınıfın nesnelerine ihtiyacımız olsun:

/project/test.php<?php
  namespace Project;
  
  class Test
  {
    public function __construct()
    {
      $data1 = new \Core\Users\Data; // nesne oluştur
      $data2 = new \Core\Admin\Data; // nesne oluştur
    }
  }
?>

Diyelim ki sınıf çağrılarını use komutu ile basitleştirmeye karar verdik. Bu durumda bir sorunla karşılaşırız: her iki sınıfın da adı Data, bu da isim çakışması yaşanacağı anlamına gelir:

/project/test.php<?php
  namespace Project;
  
  // İsim çakışması olacak:
  use \Core\Users\Data; // ilk sınıfı bağla
  use \Core\Admin\Data; // ikinci sınıfı bağla
  
  class Test
  {
    public function __construct()
    {
      $data1 = new Data;
      $data2 = new Data;
    }
  }
?>

Bu sorunu çözmek için, bağlanan sınıfa bir takma ad - bu dosya içinde erişilecek isim - vermeyi sağlayan özel bir as komutu vardır. Hadi Data sınıflarımızı yeniden adlandıralım:

/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şağıdaki kodu use kullanarak basitleştirin:

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

Aşağıdaki kodu use kullanarak basitleştirin:

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