"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > किसी क्लास के भीतर डेटाबेस ऑब्जेक्ट तक पहुँचते समय ग्लोबल वेरिएबल्स से कैसे बचें?

किसी क्लास के भीतर डेटाबेस ऑब्जेक्ट तक पहुँचते समय ग्लोबल वेरिएबल्स से कैसे बचें?

2024-12-21 को प्रकाशित
ब्राउज़ करें:197

How to Avoid Global Variables When Accessing a Database Object within a Class?

एक क्लास के भीतर ग्लोबल वेरिएबल्स का उपयोग करना

पेजिनेशन कार्यक्षमता बनाने में एक क्लास के भीतर से डेटाबेस ऑब्जेक्ट तक पहुंच शामिल होती है। हालाँकि, कक्षा के अंदर किसी बाहरी चर तक पहुँचने का प्रयास करने से त्रुटियाँ हो सकती हैं। आइए इस समस्या से निपटने के लिए संभावित समाधानों पर गौर करें।

घातक त्रुटि "किसी गैर-ऑब्जेक्ट पर सदस्य फ़ंक्शन क्वेरी() को कॉल करें" को संबोधित करने के लिए, डेटाबेस ऑब्जेक्ट को क्लास के भीतर पहुंच योग्य होना चाहिए। वैश्विक चर का उपयोग करने के बजाय, डेटाबेस ऑब्जेक्ट को क्लास या उसके तरीकों में इंजेक्ट करना अधिक उपयुक्त तरीका है।

निर्भरता इंजेक्शन

एक तरीका डेटाबेस को इंजेक्ट करना है क्लास कंस्ट्रक्टर में ऑब्जेक्ट डालें, जैसा कि नीचे दिखाया गया है:

include_once("pagi.php");

$db = new DB_MySQL("localhost", "root", "", "test"); // connect to the database

$pagination = new Paginator($db);
$records = $pagination->get_records("SELECT * FROM `table`");

class Paginator
{    
    protected $db;

    public function __construct(DB_MySQL $db)
    {
        $this->db = $db;
    }

    public function get_records($q) {
        $x = $this->db->query($q);
        return $this->db->fetch($x);
    }
}

यह पेजिनेशन क्लास को सीधे डेटाबेस ऑब्जेक्ट तक पहुंचने की अनुमति देता है।

मेथड इंजेक्शन

एक अन्य विकल्प डेटाबेस ऑब्जेक्ट को विशिष्ट में इंजेक्ट करना है वह विधि जिसके लिए इसकी आवश्यकता है:

$pagination = new Paginator();
$records = $pagination->get_records("SELECT * FROM `table`", $db);

class Paginator
{
    public function get_records($q, DB_MySQL $db) {
        $x = $db->query($q);
        return $db->fetch($x);
    }
}

स्पष्ट रूप से परिभाषित निर्भरताएँ: यह इसे बनाता है स्पष्ट करें कि कौन सी वस्तुएँ दूसरों पर निर्भर करती हैं, छिपी हुई निर्भरता को समाप्त करती हैं। ]परीक्षणशीलता: यूनिट परीक्षण डेटाबेस में हस्तक्षेप किए बिना पूरी तरह से कक्षा पर ध्यान केंद्रित कर सकते हैं कार्यक्षमता।

एक्स्टेंसिबिलिटी:
    यह बड़े कोड परिवर्तनों के बिना कई डेटाबेस या अन्य फ्रेमवर्क के उपयोग की अनुमति देता है।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3