我正在构建一个简单的框架,并希望它能帮助我更好地理解OOP。好吧,我遇到了我的第一个障碍。
我自然而然地使用MVC模式,我有一个用户模型。然后我有一个'table'来管理用户对象的集合。我有一个抽象的模型和表格。与Zend Framework布局类似。
无论如何,我现在想知道执行查询的最佳方法是什么?我有一个管理数据库层的数据库对象。目前正在使用mysqli对象。
麻烦是我的连接是我的应用程序对象的成员,如何从我的表对象中访问它以执行查询?我显然无法创建新对象,因为它将再次连接到数据库。我需要重用这个相同的db对象。
有什么想法吗?我理解这不是最佳设计。现在我只是在寻求建议。
编辑:我应该只使用Doctrine吗?
答案 0 :(得分:2)
学说与否?
如果您的目的是学习如何编写SQL查询并为自己创建一些内容,请使用mysqli或PDO。
如果您想学习如何使用面向对象的真实数据库层,请使用doctrine。有3页的教程,你可以做最一般的事情。然而,一些非常特殊的情况在原始sql中比在doctrine中更好地编码。但如果你知道如何用doctrine做事,那么它是一个非常有用的库,你最终会编写更好的,一致的,更易读和可扩展的(:-))代码。
答案 1 :(得分:1)
你应该在构造函数中添加这样的依赖项。
您也可以使用静态数据库对象,但是对于像项目这样的框架,如果您尝试添加单元测试或者想要重构,这将使您陷入地狱。
在命名模式中,您希望为此
使用依赖注入