जिसका उत्तर बेहतर है है "यह निर्भर करता है।" किसी भी चीज़ की तरह, विभिन्न दृष्टिकोण हैं और आपको यह भी ध्यान रखना चाहिए कि ऑब्जेक्ट का उपयोग करने वाला कोड ऑब्जेक्ट ओरिएंटेड नहीं है, लेकिन फिर भी प्रक्रियात्मक रूप से लिखा जा सकता है। उसी तरह, कोड जो वस्तुओं का उपयोग नहीं करता है वह अभी भी मॉड्यूलर हो सकता है।
मैं mysqli
. का उपयोग करना चुनूंगा हालांकि हर बार क्लास प्रदर्शन में कोई महत्वपूर्ण अंतर नहीं है। आपको शायद सरलीकृत बहुरूपता जैसे डीबी वर्ग का उपयोग करने के कुछ लाभों का एहसास नहीं होगा, इसलिए कक्षा का उपयोग करने के लिए मेरा एकमात्र तर्क यह है कि मैं वाक्यविन्यास पसंद करता हूं। हालांकि, mysqli
. का उपयोग करने के बजाय सीधे मैं शायद अनुशंसा करता हूं कि आप इसे विस्तारित करें या लिखें। आप इसे केवल कक्षा के साथ ही कर सकते हैं।
class DB extends mysqli {
public function __construct() {
parent::__construct($_SERVER['DB_HOST'],
$_SERVER['DB_USER'], $_SERVER['DB_PASS']);
}
}
यह एक बहुत ही उथला उदाहरण है।
मैं जिस बहुरूपता के बारे में बात कर रहा था उसका एक उदाहरण कुछ इस तरह होगा:
class User implements DAO {
private $db;
public function __construct(DB $db) {
$this->db = $db;
}
}
//Testing code is simplified compared to using it in production
class TestDB extends DB {}
new User(new TestDB);
new User(new DB);
वैसे मैं स्पष्ट रूप से PDO
. को प्राथमिकता देता हूं mysqli
. से अधिक