PHP:使我的类中的所有数据库字段都可访问的最佳方法?

PHP:使我的类中的所有数据库字段都可访问的最佳方法?,php,class,Php,Class,我正在为我的PHP应用程序开发一个类。代码被转移到一个更面向对象的方法中,大多数逻辑都驻留在类中。在开发此应用程序的早期,我创建了用于从数据库中提取信息的单个函数: function getUserID($id) function getMemberID($id) function getUserEmailAddress($id) function getUserFullName($id) function getAnalysisConditionId($id) ... etc. 我有很多从数

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

function getUserID($id)
function getMemberID($id)
function getUserEmailAddress($id)
function getUserFullName($id)
function getAnalysisConditionId($id)
...
etc.
我有很多从数据库中提取单个字段元素的函数。事实上,我认为我的数据库中大约50%的字段都有一个函数。我开始觉得这有点过分了,应该换一种方式来做

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


这是最好的方法吗?我是否应该在整个应用程序中提供每个字段?谢谢你的意见

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

请看一下活动记录设计模式。这和你想做的很相似


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

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


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

你考虑过使用ORM而不是自己构建一个吗?是的,使用现有的ORM。学说已经被提到了--也考虑推进。我已经检查了学说。我不知道我是否想彻底改造一切——我可能会尝试在这个项目的第2版中实现它。我想我可能会坚持做我自己的不太进化的ORM,并在将来实现它。谢谢你的建议!