dbアクセスを生成する「メインクラス」があります。何かのようなもの:
class ObjetBd extends Objet
{
protected $bd;
public function __construct()
{
parent::__construct();
$this->bd = new BD();
$this->bd->connect();
}
}
これは私にとって「クリーンな」コードです(コンパクトにするためにコメントを削除しました)。
今私の問題は、$this->bd
オブジェクトごとに生成されることです。
静的オブジェクトが一度生成+初期化されるかどうか疑問に思います。
connect()
静的メソッドへの直接呼び出しを使用せずに、一度呼び出して1つの接続のみを使用したい(つまり、$this->bd
以前のように使用し続ける)
その場合、次のコードが問題なく機能するかどうか、および使用するリソースを減らす必要があるかどうかを教えてください。
class ObjetBd extends Objet
{
static private $bd_static;
protected $bd;
public function __construct()
{
parent::__construct();
if (!isset(self::$bd_static)) {
self::$bd_static = new BD();
self::$bd_static->connect();
}
$this->bd = self::$bd_static;
}
}