php - 跨类的 PDO 对象

标签 php class function object pdo

我正在寻找有关以下方面的一些反馈:

我目前有两个类,它们正在我的 PHP 应用程序中使用。

一个数据库连接类,目前正在使用MySQL(但切换到PDO)。

另一个需要数据库功能的类(有几个函数)。

我正在寻找设计这个的最佳方法,我已经阅读了关于单例的内容(评论非常复杂),阅读了示例,其中对象被简单地声明为 new 每个方法(类函数),以及将连接分配给私有(private)变量作为每个类的 __constructor 方法的一部分的示例(然后用 $this-> 引用)。

那么,其他人是如何做到的呢?我希望你能好心地举个例子,也欢迎对其他人阅读的内容发表意见。

我有 2 个单独的类,在两个单独的文件中。我想保持干净的代码,减少数据库上不必要的开销,并避免任何可能被认为过时的东西(例如全局变量)。

最佳答案

负责连接的Database类应该是连接数据库,创建新的PDO实例,并将其保存到自己的字段中 .

class Database {
    private $pdo;
    public __construct() {
        $this->pdo = new PDO(...);
    }
}

第二个类,不关心数据库连接来自哪里,它只需要它工作应该注入(inject) Database:

class WorkerClass {
    private $db;
    public __construct(Database $db) {
        $this->db = $db;
    }
}

关于php - 跨类的 PDO 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11508070/

相关文章:

python - 函数内的变量不会在每次函数调用时重新创建

python - 没有 NumPy 的矩阵计算器 - 将参数传递给其他函数

php - Div 没有出现在 PHP echo 语句中,但在 echo 语句之外呈现良好

r - 从其他 data.frame R 分配 data.frame 列类

java - 执行Java程序时出错: Could not find or load main class

java - 如何让 system.out.println 在方法中返回

C++ - 使用带函数的模板时出现错误 'undefined reference'

从没有 'while' 的数据库中打印 PHP

javascript - 如何为每个帖子添加一个 eventListener(不使用 jQuery)?

php - 无法通过 join with where 子句获取记录