【问题标题】:Is there a proper way to handle database connection in class?是否有适当的方法来处理课堂上的数据库连接?
【发布时间】:2017-02-19 16:28:09
【问题描述】:

我通常将 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

【问题讨论】:

    标签: php database class interface


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-30
      • 1970-01-01
      • 2017-12-19
      • 2019-01-03
      • 1970-01-01
      • 2018-10-03
      • 2022-01-20
      • 1970-01-01
      相关资源
      最近更新 更多