Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

PHP वर्ग/विधि से डेटा कनेक्शन पास करने का अनुशंसित तरीका?

अपनी कक्षाओं में एक कनेक्शन स्ट्रिंग पास करने के बहुत सारे नुकसान हैं और कोई लाभ नहीं है। आप सही रास्ते पर हैं, लेकिन आप कनेक्शन स्ट्रिंग के बजाय डेटाबेस ऑब्जेक्ट को पास करना चाहते हैं।

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

मेरा सुझाव है कि आप setDb() . जैसी विधि का उपयोग करें डेटाबेस ऑब्जेक्ट्स को पास करने के लिए अपनी कक्षाओं पर, और फिर इसे किसी भी आंतरिक उपयोग के लिए एक संपत्ति के रूप में संग्रहीत करें।

उदाहरण के लिए, मान लें कि आपने डेटाबेस ऑब्जेक्ट $db . बनाया है एक आरंभीकरण स्क्रिप्ट में:

class SomeClass
{
    protected $db;

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

    public function something()
    {
        // do some query on the database using $this->db
    }
}

$obj = new SomeClass();
$obj->setDb($db);

$obj->something();

DI आपको वे लाभ देता है जिनका आपने उल्लेख किया है:आपके तरीकों में बहुत सारे काम किए बिना डीबी को आसानी से स्विच करने की क्षमता। अन्य लाभ हैं, अर्थात् परीक्षण में आसानी।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql पासिंग डेटा in

  2. mysql में अद्वितीय अनुक्रमित कॉलम अपडेट करें

  3. अमेज़ॅन वेब सर्विसेज ईसी 2 इंस्टेंस पर MySQL-पायथन कैसे स्थापित करें?

  4. MySQL - एक कॉलम में से एक रिकॉर्ड बनाएं

  5. MySQL क्वेरी स्ट्रिंग में शामिल हैं