sql >> データベース >  >> RDS >> Mysql

MySQL接続のPHPオブジェクトの継承を再利用する

    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メソッドを独自のクラスに抽出してから、ある種のコンポジット コマンドパターン 、しかしそれは本当にあなたがこれをどれだけモジュール化する必要があるかに依存します。



    1. SQLServerでのテキスト修飾子を使用した一括挿入

    2. Hibernate 4.3.5 は v$session.program 構成プロパティを無視します

    3. SSISのソースとしてのOracleクエリが間違ったデータ型を定義している

    4. SQL からプログラムを実行するには?