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

PHPクラス/メソッドにデータ接続を渡すための推奨される方法は?

    クラスに接続文字列を渡すことには多くの欠点があり、利点はありません。あなたは正しい方向に進んでいますが、接続文字列の代わりにデータベースオブジェクトを渡したいと考えています。

    依存性注入は、クラスにデータベースへのアクセスを許可する優れた方法です。つまり、オブジェクト自体が何らかのグローバル変数から依存性を取得するのではなく、依存性(つまりデータベースオブジェクト)を必要とするオブジェクトに渡すことを意味します。

    setDb()のようなメソッドを使用することをお勧めします クラスでデータベースオブジェクトを渡し、内部で使用するためのプロパティとして保存します。

    たとえば、データベースオブジェクト$dbを作成したと仮定します。 初期化スクリプトの場合:

    class SomeClass
    {
        protected $db;
    
        public function setDb($db)
        {
            $this->db = $db;
        }
    
        public function something()
        {
            // do some query on the database using $this->db
        }
    }
    
    $obj = new SomeClass();
    $obj->setDb($db);
    
    $obj->something();
    

    DIには、あなたが言及した利点があります。メソッドで多くの作業を行うことなく、データベースを簡単に切り替えることができます。他にも利点があります。つまり、テストが簡単です。



    1. デカルト積の結合と削除

    2. java-mysql-selectqueryoutfile-ファイルはどこに保存されますか

    3. vb.netおよびMSSQLでの日時の問題

    4. アソシエーションで更新を続編