PHP में OOP में use कमांड और नेमस्पेस
मान लीजिए हमारे पास निम्नलिखित क्लास Data है:
<?php
namespace \Core\Admin;
class Data
{
public function __construct($num)
{
}
}
?>
मान लीजिए एक क्लास Page भी है, जो अपने अंदर
क्लास Data के ऑब्जेक्ट बनाती है:
<?php
namespace Users;
class Page
{
public function __construct()
{
$data1 = new \Core\Admin\Data('1');
$data2 = new \Core\Admin\Data('2');
}
}
?>
जैसा कि आप देख रहे हैं, हमारे दोनों क्लास पूरी तरह से
अलग-अलग नेमस्पेस में हैं, इसलिए
क्लास Data के कॉल को सरल नहीं किया जा सकता,
जैसा कि हमने पिछले पाठ में किया था। हालाँकि, ये कॉल बहुत लंबे
और असुविधाजनक हैं, क्योंकि क्लास Data के प्रत्येक कॉल में
उसके लंबे नेमस्पेस को निर्दिष्ट करना पड़ता है।
इस तरह की समस्या के समाधान के लिए एक विशेष कमांड
use मौजूद है। इस कमांड की सहायता से
उसके पूरे नाम से क्लास को एक बार कनेक्ट करना पर्याप्त है, और उसके बाद
इस क्लास को सीधे क्लास के नाम से एक्सेस किया जा सकता है। उदाहरण देखें:
<?php
namespace Users;
use \Core\Admin\Data; // क्लास को कनेक्ट करें
class Page extends Controller
{
public function __construct()
{
$data1 = new Data('1'); // सीधे नाम से कॉल करें
$data2 = new Data('2'); // सीधे नाम से कॉल करें
}
}
?>
use का उपयोग करके निम्नलिखित कोड को सरल बनाएं:
<?php
namespace Project;
class Test
{
public function __construct()
{
// एक ही क्लास के 3 ऑब्जेक्ट बनाएं:
$data1 = new \Core\Users\Data('user1');
$data2 = new \Core\Users\Data('user3');
$data3 = new \Core\Users\Data('user3');
}
}
?>
निम्नलिखित क्लास दिए गए हैं:
<?php
namespace Core\Admin;
class Controller
{
}
?>
<?php
namespace Users;
class Page extends \Core\Admin\Controller
{
}
?>
क्लास के इनहेरिटेंस कोड को use कमांड लगाकर सरल बनाएं।