私のクラスの多くは、作業を行うためにデータベースへのアクセスを必要とします。しばらくの間、私は次のようなことをしてきました:
// Create a (one) database object
$mysqli = new mysqli("host", "username", "password", "db");
// Pass database object into each new object that requires database interaction as follows
$car = new Car($data, $mysqli);
$plane = new Plane($data, $mysqli);
// etc
次に、各クラスにはプライベート$ mysqliメンバーがあり、渡されたmysqliオブジェクトが次のように構成で割り当てられます。
class Car {
private $mysqli;
public function __construct($data, $mysqli) {
$this->mysqli = $mysqli;
}
}
次に、クラスメソッドは次のようにmysqliオブジェクトを簡単に使用できます。
public function fuelLevel() {
$this->mysqli->query("SELECT fuel_level FROM fuel_tank");
}
私の質問は、これらのオブジェクトを数千個作成した場合、パフォーマンスの問題が発生するかどうかです。そうすることで、アプリケーション全体で技術的にデータベース接続が1つだけであると考えるのは正しいですか?または、恐れられているパフォーマンスのオーバーヘッドを回避するために、以下のような参照(ポインター?)を使用する必要がありますか?
$car = new Car($data, &$mysqli);
$plane = new Plane($data, &$mysqli);