0

我正在为我的 PHP 应用程序开发一个类。代码正被转移到一种更加面向对象的方法中,大部分逻辑都驻留在类中。在开发的早期,我创建了用于从数据库中提取信息的单独函数:

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

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

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

这是最好的方法吗?我是否应该在整个应用程序中提供每个字段?感谢您的输入!

4

3 回答 3

2

您应该查看几个可用的 ORM 解决方案之一。我自己是教义的粉丝。基本上,他们会为您管理所有这些,并且通常他们甚至会帮助您生成访问器方法。

于 2012-05-21T20:21:28.397 回答
0

看一下 Active Record 设计模式。这与您尝试执行的操作类似。

正如其他人所建议的那样,无需为基本的东西重新发明轮子。只需使用 ORM(Doctrine2 实际上是 PHP 最流行的)。

于 2012-05-21T20:22:08.177 回答
0

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

但实际上,您应该研究现有的解决方案,它们会为您省去很多麻烦。

于 2012-05-21T20:32:00.670 回答