私はこのようなクラスを持っています:
classPages.php
class pages {
private $dbh;
function __construct($dbh) {
$this->dbh = $dbh;
}
//...
}
classNews.php
class news {
private $dbh;
function __construct($dbh) {
$this->dbh = $dbh;
}
//...
}
classMod.php
class mod {
private $dbh;
function __construct($dbh) {
$this->dbh = $dbh;
}
//...
}
そしてインデックスページで:
try
{
$dbh = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options);
}
catch(PDOException $ex)
{
die("Failed to connect to the database: " . $ex->getMessage());
}
require 'classPages.php';
require 'classNews.php';
require 'classMod.php';
$pages = new pages($dbh);
$news = new news($dbh);
$mod = new mod($dbh);
//use above objects where needed
だから私は単一の PDO オブジェクトを作成します。次に、各クラスのコンストラクターに渡します。次に、これらのオブジェクトを使用して、コンストラクターに渡されたこの pdo オブジェクトを使用してデータのフェッチと挿入を行うメンバー関数を呼び出します。
正しい方法ですか?または、直接的または間接的に競合が発生しますか?