用 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 封装数据访问的好方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

用 SnapKit 构建堆叠视图的好方法是啥

在 Spring Boot 中访问外部配置的好习惯是啥?

用户更改密码时调用哪个 Windows API?挂钩这个 API 的好方法是啥?

使用 PHP/MySQL 导出大型 CSV 数据的最佳方法是啥?

将 Cocoa 前端写入 Erlang 应用程序的好方法是啥?

在 Codeigniter 中处理发布数据的好方法是啥?