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

PHPでのmysqlの手続き型実装とオブジェクト指向実装の違いは?

    より良い答え 「状況によります」です。他の場合と同様に、さまざまなアプローチがあります。オブジェクトを使用するコードは、必ずしもオブジェクト指向である必要はありませんが、手続き的に記述できることにも注意してください。同様に、オブジェクトを使用しないコードはモジュール化できます。

    mysqliを使用することを選択します でも毎回クラス。パフォーマンスに大きな違いはありません。単純化されたポリモーフィズムなど、DBクラスを使用する利点のいくつかはおそらく理解できないでしょう。そのため、このクラスを使用するための私の唯一の議論は、構文を好むということです。ただし、mysqliを使用するのではなく 直接私はおそらくそれを拡張または構成することをお勧めします。これはクラスでのみ行うことができます。

    class DB extends mysqli {
        public function __construct() {
            parent::__construct($_SERVER['DB_HOST'],
                $_SERVER['DB_USER'], $_SERVER['DB_PASS']);
        }
    }
    

    これは非常に浅い例です。

    上で話していたポリモーフィズムの例は、次のようになります。

    class User implements DAO {
        private $db;
        public function __construct(DB $db) {
            $this->db = $db;
        }
    }
    
    //Testing code is simplified compared to using it in production
    class TestDB extends DB {}
    new User(new TestDB);
    new User(new DB);
    

    ちなみに私は断固としてPDOを好みます mysqli以上



    1. JDBCによるOracleの非アクティブなセッション

    2. 範囲外の数値:mysqlの1264

    3. プライマリには、テーブルのパーティション分割場所エラーのすべての列が含まれている必要がありますか?

    4. Laravelでの複雑なクエリのorderByの後のGroupBy