mysqli कनेक्शन को अपनी बूटस्ट्रैप फ़ाइल में एक बार बनाकर इंस्टेंस के बीच साझा करना काफी आसान है और फिर इसे ऐसे इंस्टेंस पर पास करना, जिन्हें इसकी आवश्यकता है, उदा.
$mysqli = new mysqli(/* connection params */);
$someClassUsingMySqli = new SomeClassUsingMySqli($mysqli);
$anotherClassUsingMySqli= new AnotherClassUsingMySqli($mysqli);
यह प्रभावी रूप से कनेक्शन को सीमित कर देगा और आपको अपनी वस्तुओं के अंदर ग्लोबल्स का सहारा लेने की आवश्यकता नहीं है। इसे डिपेंडेंसी इंजेक्शन कहा जाता है और वस्तुओं पर निर्भरता निर्दिष्ट करने का आपका पसंदीदा तरीका होना चाहिए। यह निर्भरता को स्पष्ट और स्वैप करने में आसान बनाता है और इस प्रकार परिवर्तन, परीक्षण और रखरखाव का लाभ देता है।
आपके आयात और निर्यात कार्य के लिए, मुझे आश्चर्य है कि आप PHP में ऐसा क्यों कर रहे हैं। यह स्पष्ट रूप से वही डेटाबेस सर्वर है, इसलिए आप इसे अपने MySQL इंस्टेंस के अंदर ही कर सकते हैं। यदि आप इसे PHP के साथ करना चाहते हैं, तो शायद मैं कुछ ऐसा करूँगा:
class MigrateForum
{
private $dbConnector;
public function __construct(DBConnector $dbConnector)
{
$this->dbConnector = $dbConnector;
}
public function migrate()
{
// orchestrate the migration (consider transactions)
$this->exportOldForum();
$this->importNewForum();
}
private function exportOldForum()
{
// code to export old_database_name.table_name
}
private function importOldForum()
{
// code to import new_database_name.table_name
}
}
आप आयात और निर्यात विधियों को अपनी कक्षाओं में निकाल सकते हैं और फिर किसी प्रकार का उपयोग कर सकते हैं समग्र कमांड पैटर्न , लेकिन यह वास्तव में इस बात पर निर्भर करता है कि आपको यह कितना मॉड्यूलर होना चाहिए।