PHP:在我的课程中访问所有数据库字段的最佳方法?

时间:2012-05-21 20:15:30

标签: php class

我正在为我的PHP应用程序开发一个类。代码正在被转移到更多的OO方法中,大多数逻辑都驻留在类中。在开发这个过程的早期,我创建了用于从数据库中提取信息的各个函数:

function getUserID($id)
function getMemberID($id)
function getUserEmailAddress($id)
function getUserFullName($id)
function getAnalysisConditionId($id)
...
etc.

我有很多函数可以从数据库中提取单个字段元素。事实上,我认为我的数据库中有大约50%的字段。我开始认为这有点过分了,这应该是另一种方式。

我考虑过构建一个函数(比如getUserInfo($ id)),在这个函数中,我会查询User表中的所有字段,包括与返回所有相关字段相关的任何连接。然后,我将返回结果表中每个字段的数组。然后,如果我在我的应用程序中的某处需要此信息,我可以将其称为$ class-> getUserInfo($ id)['id']。

这是最好的方法吗?我是否应该在整个申请过程中提供各个领域?感谢您的投入!

3 个答案:

答案 0 :(得分:2)

您应该查看其中一种可用的ORM解决方案。我自己是Doctrine的粉丝。基本上,他们会为您管理所有这些,通常他们甚至会帮助您生成访问方法。

答案 1 :(得分:0)

查看Active Record设计模式。它与你想要做的类似。

正如其他人所说,没有必要重新发明基本的东西。只需使用ORM(Doctrine2实际上是PHP最受欢迎的)。

答案 2 :(得分:0)

我必须同意这里的其他答案,并建议您研究一下现有的解决方案。但是,如果您真的想自己这样做,可以使用PHP的魔术方法动态创建所有这些getter方法。 Here简要解释了如何做到这一点。您可以轻松地调整此代码以从数据库返回数据,而不是像示例那样返回数组。

但实际上,你应该研究现有的解决方案,它们会给你带来很多麻烦。