是否有适当的方法来处理类中的数据库连接?

时间:2016-10-11 07:07:55

标签: php database class interface

我通常将PDO对象存储为成员。但是,在练习依赖注入期间,我遇到了一个问题,我无法决定处理数据库连接的优雅方式。

!!我做了什么。   在每个实例化类中,我总是将PDO对象传递给构造函数。构造函数存储给定PDO对象的引用。

class Examples
{
    /* Properties */
    public $db;

    /* Constructor */
    public function __construct(PDO &pdo)
    {
        $this->db = $pdo;
    }

    //..
}

它运作良好,即使我有不明原因。我困扰着一些bzar怀疑,Am I doing right?

主要问题是,如何为某些类提供数据库连接?扩展PDO?传递PDO对象作为参数?或者让另一个类扩展PDO并实现它们? .. ??? ??? ???????????? ; OTL

1 个答案:

答案 0 :(得分:1)

您不需要使用&符号传递$ pdo作为参考,因为在PHP中,默认情况下,对象通过引用传递。 你的榜样很好。 除非使用专门版本的PDO,否则切勿使用PDO扩展您的实体/模型类。 如果你有很多使用$ pdo和其他服务的类(例如会话,文件系统,API等),那么你可以考虑创建一个服务管理器(容器),然后调用它来获取可重用的对象,比如你的$ PDO。 如果您将来用其他东西替换PDO,您不需要重写所有将其作为参数的类。