コンストラクターに引数として指定することで、いくつかの異なるオブジェクト間でデータベース接続を共有できます。または、データベース接続を使用して他のクラスにサービスを提供するシングルトンを作成することもできます。
データベース接続をコンストラクターに渡す
class Foo {
private $database = null;
public function __construct(&$database) {
$this->database = $database;
}
}
$connection = mysql_connect(..);
$bar = new Foo($connection);
シングルトン
class DatabaseConnection {
private static $instance = null;
private function __construct() {
}
public static function &getInstance() {
if (DatabaseConnection::$instance == null) {
DatabaseConnection::$instance = new DatabaseConnection();
}
return DatabaseConnection::$instance;
}
}
$mysql_query("...", DatabaseConnection::getInstance());
& は参照渡しを意味するため、複数の異なるファイル、クラス、または関数で使用されている場合でも、データベース オブジェクトのインスタンスは 1 つだけになります。詳細については、 http://php.net/manual/en/language.references.pass.phpを参照してください。