用PHP / MySQL封装数据访问的好方法是什么?
我的大部分经验是在MSFT堆栈上进行的,但是我现在正在进行一个辅助项目,通过基于LAMP堆栈的廉价托管帮助具有个人站点的某人。我安装Extras的选项是有限的,因此我想知道如何编写数据访问代码而不将原始查询嵌入到.php文件中。
即使使用.NET,我也喜欢保持简单。我通常为所有内容编写存储过程,并且我有一个帮助程序类,该类包装了用于执行过程和返回数据集的所有调用。我不是在寻找成熟的ORM,但这可能是解决之道,而其他查看此问题的人可能正在寻找它。
请记住,我使用的是每月$ 7的GoDaddy帐户,因此我仅限于基本软件包中已安装的内容。
编辑:谢谢rix0rr,Alan,Anders,Dragon,我将检查所有这些内容。我对问题进行了编辑,以使其对ORM解决方案更加开放,因为它们是如此受欢迎。
解决方案
回答
看一下Zend框架,特别是Zend_Db。它具有一个数据库抽象层,除了要安装MySQLi扩展之外,不需要任何其他操作,并且它不是成熟的ORM模型。
回答
也许教义会做这份工作?它似乎受到了休眠的启发。
回答
ActiveRecord目前似乎是最新技术。我不能为此推荐任何好的PHP框架。我尝试了Propel,尽管它不错,但设置起来并不容易(尤其是在不能安装任何东西的主机上)。
最终,我推出了自己的ORM / ActiveRecord框架,这不是太多的工作,但很有启发性。我确信其他人可以推荐好的PHP框架。
回答
rix0rrr有点麻烦,因为要安装许多工具很麻烦。当然,对于这个问题,我有自己的解决方案,该解决方案在过去几年中一直表现良好。这是一个名为dbFacile的项目
我还写了一些几年前发现的工具的用法比较。它不完整,但可能会为我们提供一个良好的起点。
我们提到我们不想嵌入原始查询,但又不想使用ORM,因此我对希望找到的中间立场有些困惑。我也有一个ORM项目,目的是要求最少的设置和极大的易用性。
我的项目的唯一要求是PHP5.
回答
我会尝试一个框架。 Zend Framework已被引用。 Symfony似乎很有趣。它基于Ruby on Rails的想法。
回答
我们也可以看看普拉多。 http://www.pradosoft.com/它使用Active Record和DAO。同样,如果我们使用.Net,则某些格式和约定也类似。