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