PHP में OOP के नेमस्पेस में क्लास उपनाम
मान लीजिए कि हमारे पास दो क्लास Data हैं,
जो अलग-अलग नेमस्पेस से संबंधित हैं।
मान लीजिए कि किसी क्लास में हमें दोनों क्लास के
ऑब्जेक्ट चाहिए:
<?php
namespace Project;
class Test
{
public function __construct()
{
$data1 = new \Core\Users\Data; // ऑब्जेक्ट बनाते हैं
$data2 = new \Core\Admin\Data; // ऑब्जेक्ट बनाते हैं
}
}
?>
मान लीजिए कि हमने use कमांड के माध्यम से क्लास कॉल को
सरल बनाने का निर्णय लिया। इस स्थिति में हमें
एक समस्या का सामना करना पड़ेगा: दोनों क्लास का नाम Data है,
और इसका मतलब है कि हमारे पास नामों का टकराव होगा:
<?php
namespace Project;
// नामों का टकराव होगा:
use \Core\Users\Data; // पहला क्लास कनेक्ट करते हैं
use \Core\Admin\Data; // दूसरा क्लास कनेक्ट करते हैं
class Test
{
public function __construct()
{
$data1 = new Data;
$data2 = new Data;
}
}
?>
इस समस्या के समाधान के लिए एक विशेष कमांड as मौजूद है,
जो कनेक्ट किए जाने वाले क्लास को उपनाम देने की अनुमति देती है -
वह नाम जिसके तहत यह क्लास इस फाइल में उपलब्ध होगा। आइए
हम अपने क्लास Data का नाम बदलें:
<?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;
}
}
?>
use का उपयोग करके निम्नलिखित कोड को सरल बनाएं:
<?php
namespace Project;
class Test
{
public function __construct()
{
$pageController = new \Resource\Controller\Page;
$pageModel = new \Resource\Model\Page;
}
}
?>
use का उपयोग करके निम्नलिखित कोड को सरल बनाएं:
<?php
namespace Project\Data;
class Test
{
public function __construct()
{
$pageController = new \Project\Data\Controller\Page;
$pageModel = new \Project\Data\Model\Page;
}
}
?>