Koneksi mysqli cukup mudah untuk dibagikan antar instance dengan membuatnya sekali di file bootstrap Anda dan kemudian meneruskannya ke instance yang membutuhkannya, mis.
$mysqli = new mysqli(/* connection params */);
$someClassUsingMySqli = new SomeClassUsingMySqli($mysqli);
$anotherClassUsingMySqli= new AnotherClassUsingMySqli($mysqli);
Itu akan secara efektif membatasi koneksi ke satu dan Anda tidak perlu menggunakan global di dalam objek Anda. Ini disebut Injeksi Ketergantungan dan harus menjadi cara pilihan Anda untuk menetapkan dependensi ke objek. Itu membuat dependensi eksplisit dan mudah untuk ditukar dan dengan demikian menguntungkan perubahan, pengujian, dan pemeliharaan.
Adapun Tugas Impor dan Ekspor Anda, saya bertanya-tanya mengapa Anda melakukan ini di PHP sama sekali. Tampaknya server database yang sama, jadi Anda bisa melakukannya di dalam instance MySql Anda. Jika Anda ingin melakukannya dengan PHP, saya mungkin akan melakukan sesuatu seperti ini:
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
}
}
Anda dapat mengekstrak metode Impor dan Ekspor ke Kelas mereka sendiri dan kemudian menggunakan semacam Komposit Pola Perintah , tapi itu sangat tergantung pada seberapa modular Anda membutuhkannya.