PHP OOP Design: DB actively conncted
在数据库抽象层的OOP设计中,为使用它的原始DB对象创建包装对象是否合适? 要提供所有用户,请在自身内部进行传递并创建一个活动连接,以便其他对象(如CRUD)可以继承该对象并已具有打开的连接?
<-编辑->
一些背景:我想在这里构建的是db-logic和business-logic之间的良好隔离
所以我想创建一个表CRUD对象,以被其他业务逻辑对象继承
但是,当我想到与数据库的连接将如何转移时,就会出现问题
在那些对象之间。 感觉不对,只是将其作为参数传递
1 2 | class TableCrud(AbstractDb $db) {...} class BusinessObject(TableCrud $tc) { ... } |
还有另一种感觉不太合适的方法是在其中包含一个包含DB用户凭据的对象,该对象打开连接并让TableCrud继承它。
我确定我在这里在对象机制之间缺少一些东西。
当我编写数据库模型时,通常如下所示:
Model.php:
1 2 3 | include('connect.php'); class Model{}... |
connect.php:
1 2 3 4 | include('Database.php'); include('dblogin.db'); $db = new Database( $user, ...); |
Database.php:
1 | class Database{} |
dblogin.db:
1 2 | $user = user; ...etc... |
哇,在那里减速。 一点点的标点符号会很有帮助。
对于任何不容易理解的内容,我都没有附加一层抽象层的问题。 只需确保有必要,这将使事情更容易理解,而不是相反。 有时,如果您不得不问,这已经意味着您在控制问题上处于边缘状态。