私はデザインパターンの概念にかなり慣れておらず、依存性注入とポリモーフィズムを使用することを考えています(それぞれが適用可能です)-しかし、私は多くのシングルトンを持っており、それらのほとんどは簡単に変更できますが、私のDBALはできません。
DBALがデータベースへの接続を作成する理由は、独自のPDOオブジェクトを設定することです。新しいDBALをそれを必要とするすべてのクラス(かなりの数)に渡すと、データベースへの複数の不要な接続が発生します。
クラスはこんな感じ
class DB {
/**
* Hold the PDO object
* @var PDO
*/
private $_db;
/**
* Hold the last error messages
* @var string
*/
private $_error_message = NULL;
/**
* Hold the last error code
* @var int
*/
private $_error_code = NULL;
/**
* Connects to the database server and selects a database
*
* @param string $user MySQL database user
* @param string $password MySQL database password
* @param string $name MySQL database name
* @param string $host MySQL database host
* @return bool
*/
public function connect( $user, $password, $name, $host ) {
// Connect
try {
$this->_db = new PDO( "mysql:host=$host;dbname=$name", $user, $password );
} catch ( PDOException $e ) {
$this->_error_message = $e->getMessage();
$this->_error_code = $e->getCode();
return false;
}
return true;
}
// ...
}
?>
このクラスを継承する多くのクラスがあります-これを処理するための最良の方法は何ですか?(私はパターンのデザインに不慣れです)