PDO跨类对象(PDO objects across classes)

2019-09-19 13:26发布

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

我现在有两个班,这是在我的PHP应用程序中使用。

数据库连接类,这是目前使用MySQL (但切换到PDO )。

另一类(具有若干功能),它要求数据库功能。

我在寻找设计最好的方法,我在单身读了(非常褒贬不一的评价),读取其中的物体被简单地声明为实例new每个方法(类函数),其中连接分配和实例作为一个的一部分的专用变量__constructor为每个类的方法(再与参考$this->

那么,如何每个人做呢? 我希望你还跟也许举一个例子,也欢迎已经阅读别人请的意见。

我有2个独立的阶级,在两个单独的文件。 我想保持干净的代码,减少对数据库不必要的开销,并且避免任何可能被认为是过时的(如全局)。

Answer 1:

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

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

第二类, 它并不关心在DB连接是,它只是需要它的工作注入Database

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


Answer 2:

我一直在创造了它__constructor然后使用$this->得到它。 这应该适用于您的需求,但我会鼓励你玩不同的风格,看一个作品最擅长的。

我不会创建一个新的对象new每一次,除非你有一个很好的理由。



文章来源: PDO objects across classes