我是否在基类中调用了我继承的抽象类?什么时候在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