PHP में OOP के नेमस्पेस में क्लास उपनाम

मान लीजिए कि हमारे पास दो क्लास 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;
    }
  }
?>