【问题标题】:Choosing the right Database System for my framework [closed]为我的框架选择正确的数据库系统 [关闭]
【发布时间】:2011-07-04 08:55:37
【问题描述】:

最近我一直在研究一个基于 MVC 的框架,该框架目前已经完成了一半,我现在正处于研究应该使用哪个数据库抽象层的阶段。

在我的大多数项目中,我通常只使用 PDO 作为父类,并使用带有一些集成辅助函数的自定义结构。

但我必须与时俱进,ORM 应该在 DBAL 中占据重要地位,但我从未使用过它,我了解 ORM 的概念,我认为它很可爱,但我坚持要做什么做。

我的框架源代码在此处可用,因此您可以查看它是什么类型的系统,没有 DBAL 目前只有模型加载器等。

我是否应该坚持我所知道的,并使用带有一些额外功能的 PDO。

或者我应该冒险进入未知领域并使用基于 ORM 的 DBAL,如果您建议我应该冒险,我有一些关于使用它的问题。

首先,我知道 StackOverflow 上有很多关于“最佳 ORM”的问题和答案,但考虑到以下几点,您有什么建议?

  • 轻巧且经过良好测试
  • 能够与模型集成
  • 有多种驱动程序可供选择
  • 有自己的范围或至少以供应商名称为前缀

我看过 RedBeans,我喜欢其中的概念,但有很多功能在模型之外无法实现。

你有什么建议?

【问题讨论】:

    标签: php orm choice dbal redbean


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      ORM 层允许您抽象数据库层,主要用于关系数据库。

      一个好的允许你扩展它的类,这样你就可以更流畅地使用 ORM 来满足你自己的需要。有点像你对 PDO 所做的,但在 ORM 级别上。

      我建议你看看Doctrine,它很容易与其他 Symfony 组件或你自己的类集成。 This plog post shows how it works。 Doctrine 可能是 PHP 世界中最先进的 ORM 和 DBAL。

      【讨论】:

      • 我对 Doctrine 的问题是它使用命名空间的事实,尽管命名空间在很多语言中都很重要,但我个人发现 PHP 还没有为它们准备好,另一点是我的框架不是用命名空间的构建的
      • @RoberPitt:任何 PHP 都使用命名空间,如果你不指定一个,它就是全局的。因此,只要您不需要出于遗留原因支持过时的 PHP 版本,这不应该阻止您使用明确指定命名空间的 PHP 代码。否则,Doctrine 1.2 版适用于全局命名空间中的 PHP 5.2.3+。
      猜你喜欢
      • 2010-12-04
      • 1970-01-01
      • 2019-12-18
      • 2016-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-19
      • 1970-01-01
      相关资源
      最近更新 更多