我是否在基類中調用了我繼承的抽象類?什麼時候在MVC(PHP)中創建我的數據庫連接?
class ConcreteClass extends MyAbstractClass(){
public function __construct(){
parent::__construct(); //or other method that returns my adapter, PDO in this case.
}
}
或者,我得到創建的每個對象引用新的適配器:
class ConcreteClass extends BaseClass(){ //or no class extension for that matter
public function __construct(){
public function __construct(DB $adapter) { //or call DB on another class for DI via set/get
$this->adapter = $adapter;
$this->adapter->connect();
}
}
}
我將創建與創建的每個對象到數據庫的新連接。這不好嗎?我不知道另一種辦法,除了一個單身人士,我不想使用它。
http請求 - >控制器 - >最終我得到我的對象,這會在每次創建對象時調用數據庫,新的連接。
我已經創建了一個類型爲「DB」的接口或抽象類,因此如果需要,我可以更改我的數據源,儘管我已經使用了PDO。
這應該有助於http://stackoverflow.com/a/11369679/727208 ..簡短的回答:*首次初始化數據映射器,然後爲每個其他實例化的數據映射器重新使用相同的數據庫連接*。 – 2014-09-04 14:49:54