mysqli接続は、ブートストラップファイルに一度作成し、それを必要とするインスタンスに渡すことで、インスタンス間で簡単に共有できます。例:
$mysqli = new mysqli(/* connection params */);
$someClassUsingMySqli = new SomeClassUsingMySqli($mysqli);
$anotherClassUsingMySqli= new AnotherClassUsingMySqli($mysqli);
これにより、接続が1つに効果的に制限され、オブジェクト内のグローバルに頼る必要がなくなります。これは依存性注入と呼ばれ、オブジェクトに依存性を割り当てるための好ましい方法です。依存関係を明示的かつ簡単に交換できるため、変更、テスト、およびメンテナンスにメリットがあります。
インポートとエクスポートのタスクに関しては、なぜ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
}
}
ImportメソッドとExportメソッドを独自のクラスに抽出してから、ある種のコンポジット コマンドパターン 、しかしそれは本当にあなたがこれをどれだけモジュール化する必要があるかに依存します。