用 PHP/MySQL 封装数据访问的好方法是啥?
Posted
技术标签:
【中文标题】用 PHP/MySQL 封装数据访问的好方法是啥?【英文标题】:What's a good way to encapsulate data access with PHP/MySQL?用 PHP/MySQL 封装数据访问的好方法是什么? 【发布时间】:2008-08-22 13:04:29 【问题描述】:我的大部分经验都在 MSFT 堆栈上,但我现在正在从事一个业余项目,帮助某人拥有一个基于 LAMP 堆栈的廉价托管个人网站。我安装 extras 的选项是有限的,所以我想知道如何编写我的数据访问代码而不在 .php 文件中嵌入原始查询。
我喜欢保持简单,即使是 .NET。我通常为所有内容编写存储过程,并且我有一个帮助类,它包装所有调用以执行过程和返回数据集。我不是在寻找一个成熟的 ORM,但这可能是要走的路,其他查看这个问题的人可能正在寻找它。
请记住,我使用的是每月 7 美元的 GoDaddy 帐户,因此我仅限于他们基本包中已安装的内容。
编辑:感谢 rix0rr、Alan、Anders、dragon,我会检查所有这些。我编辑了这个问题,以便对 ORM 解决方案更加开放,因为它们非常受欢迎。
【问题讨论】:
【参考方案1】:ActiveRecord 似乎是目前最先进的。不过,我不能为此推荐任何好的 PHP 框架。我试过Propel,虽然不错,但设置起来并不容易(尤其是在无法安装任何东西的主机上)。
最终,我推出了自己的 ORM/ActiveRecord 框架,工作量不大,很有指导意义。我相信其他人可以推荐好的 PHP 框架。
【讨论】:
【参考方案2】:看看Zend Framework,特别是Zend_Db。它有一个数据库抽象层,除了安装 mysqli 扩展之外不需要任何其他东西,而且不是成熟的 ORM 模型。
【讨论】:
【参考方案3】:也许Doctrine 会做这项工作?好像是受到Hibernate的启发。
【讨论】:
【参考方案4】:rix0rrr hit on it a bit,因为许多工具设置起来很痛苦。当然,对于这个问题,我有自己的解决方案,在过去的几年里一直运行良好。这是一个名为dbFacile的项目
我还写了一些我几年前发现的工具的usage comparison。它不完整,但可能会给你一个很好的起点。
您提到您不想嵌入原始查询,但又不想使用 ORM,所以我对您希望找到的中间立场有点困惑。我还有一个ORM project,它旨在要求最少的设置和极大的易用性。
我的项目的唯一要求是 PHP5。
【讨论】:
【参考方案5】:我会尝试一个框架。 Zend Framework 已被引用。 Symfony 似乎很有趣。它基于 Ruby on Rails 的想法。
【讨论】:
【参考方案6】:你也可以看看普拉多。 http://www.pradosoft.com/ 它使用 Active Record 和 DAO。此外,如果您使用 .Net,则某些格式和约定是相似的。
【讨论】:
以上是关于用 PHP/MySQL 封装数据访问的好方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
用户更改密码时调用哪个 Windows API?挂钩这个 API 的好方法是啥?
使用 PHP/MySQL 导出大型 CSV 数据的最佳方法是啥?