跨类的PDO对象

时间:2012-07-16 16:00:33

标签: php class function object pdo

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

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

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

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

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

那么,其他人怎么做呢?我希望你能够做出一个榜样,并欢迎其他人读到的意见。

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

2 个答案:

答案 0 :(得分:2)

负责连接的Database类应该是连接到数据库的那个,创建新的PDO实例,并将其保存到字段本身

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

第二个类不关心数据库连接的来源,它只需要它可以工作注入Database

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

答案 1 :(得分:1)

我一直在__constructor创建它,然后使用$this->来获取它。这应该适合您的需求,但我鼓励您玩不同的风格,看看哪种方式效果最好。

我不会每次都使用new创建一个新对象,除非你有充分的理由。