एक क्लास के भीतर ग्लोबल वेरिएबल्स का उपयोग करना
पेजिनेशन कार्यक्षमता बनाने में एक क्लास के भीतर से डेटाबेस ऑब्जेक्ट तक पहुंच शामिल होती है। हालाँकि, कक्षा के अंदर किसी बाहरी चर तक पहुँचने का प्रयास करने से त्रुटियाँ हो सकती हैं। आइए इस समस्या से निपटने के लिए संभावित समाधानों पर गौर करें।
घातक त्रुटि "किसी गैर-ऑब्जेक्ट पर सदस्य फ़ंक्शन क्वेरी() को कॉल करें" को संबोधित करने के लिए, डेटाबेस ऑब्जेक्ट को क्लास के भीतर पहुंच योग्य होना चाहिए। वैश्विक चर का उपयोग करने के बजाय, डेटाबेस ऑब्जेक्ट को क्लास या उसके तरीकों में इंजेक्ट करना अधिक उपयुक्त तरीका है।
निर्भरता इंजेक्शन
एक तरीका डेटाबेस को इंजेक्ट करना है क्लास कंस्ट्रक्टर में ऑब्जेक्ट डालें, जैसा कि नीचे दिखाया गया है:
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