【问题标题】: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 解决方案更加开放,因为它们非常受欢迎。

【问题讨论】:

    标签: php mysql database lamp


    【解决方案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,则某些格式和约定是相似的。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2011-01-09
                • 1970-01-01
                • 2011-04-08
                • 1970-01-01
                • 2019-05-20
                • 2010-09-05
                • 1970-01-01
                • 2014-08-16
                相关资源
                最近更新 更多