【发布时间】:2014-09-22 03:59:51
【问题描述】:
在父类中实例化数据库连接然后其子类可以继承是个好主意吗?
例如,这是我的核心模型,
class CoreModel
{
protected $connection;
public function __construct()
{
// Construct database connection data.
$this->connection = new Database(DSN,DB_USER,DB_PASS);
$this->connection->connect();
}
}
然后我有这些从CoreModel 扩展的类,
class Article extends CoreModel
{
public function __construct()
{
parent::__construct();
}
}
class Image extends CoreModel
{
public function __construct()
{
parent::__construct();
}
}
class Controller extends CoreModel
{
public function __construct()
{
parent::__construct();
}
}
它会导致数据库连接无限次吗?那么在我上面的例子中,这将是 3 db 连接?
如果这是一个坏主意,那么实例化数据库连接一次以便所有类都可以依赖它的基本方法是什么?
编辑:
$connection = new Database(DSN,DB_USER,DB_PASS);
$connection->connect();
$controller = new Controller($connection);
$article = new Article($connection);
class Article {
protected $connection;
public function __construct(Database $connection) {
$this->connection = $connection;
}
}
【问题讨论】:
-
您可能会发现this post 很有用。
标签: php inheritance pdo multiple-inheritance