A conexão mysqli é fácil o suficiente para compartilhar entre instâncias, criando-a uma vez em seu arquivo bootstrap e, em seguida, passando-a para instâncias que precisam, por exemplo,
$mysqli = new mysqli(/* connection params */);
$someClassUsingMySqli = new SomeClassUsingMySqli($mysqli);
$anotherClassUsingMySqli= new AnotherClassUsingMySqli($mysqli);
Isso limitará efetivamente a conexão a um e você não precisará recorrer a globais dentro de seus objetos. Isso é chamado de injeção de dependência e deve ser sua maneira preferida de atribuir dependências a objetos. Ele torna as dependências explícitas e fáceis de trocar e, portanto, beneficia a mudança, o teste e a manutenção.
Quanto à sua tarefa de importação e exportação, eu me pergunto por que você está fazendo isso em PHP. Aparentemente é o mesmo servidor de banco de dados, então você pode fazer isso dentro de sua instância MySql. Se você quiser fazer isso com PHP, eu provavelmente faria algo assim:
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
}
}
Você pode extrair os métodos de importação e exportação em suas próprias classes e, em seguida, usar algum tipo de Composto Padrão de comando , mas isso realmente depende de quão modular você precisa que isso seja.