2011-07-04 46 views
2

最近我一直在一个基于MVC框架,该框架目前一半,其中I'me寻找到我应该使用什么数据库抽象层的阶段结束,现在I'me。选择合适的数据库系统为我的框架

在我的大部分项目,我通常只使用PDO作为父类,并具有一些集成辅助功能的自定义结构。

但是我必须和时并进,ORM应该在DBAL的这些日子里很大,但我从来没有用过它,我理解ORM的概念,我觉得它很漂亮,但我坚持什么去做。

我Framework的源可以在这里找到,所以你可以看到什么类型的系统,它是,没有DBAL什么那么此刻只是型号装载机等

我是否应该坚持我所知道的,并且使用PDO和一些额外的功能来提高性能。

或者我应该走出去到未知和使用ORM基于DBAL,如果你认为我应该走出去我的问候几个问题来使用它。

首先,我知道有很多的StackOverflow上的问题和答案的问候“最好的ORM”但是记住以下,你会建议?

  • 重量轻,很好的测试
  • 能够与模型集成
  • 拥有的广泛的选择驾驶
  • 有它自己的范围,或者至少前缀与它的供应商名称

我有看着RedBeans,我喜欢那里的概念,但是有很多功能在模型之外是无法实现的。

您的建议是什么?

回答

0

一个ORM层允许你抽象的数据库层,多为关系数据库。

一个好的允许您扩展它的类,以便您可以更流利地使用ORM满足您自己的需求。不知怎的,就像你在PDO上做的那样,但在ORM层面上。

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

+1

我有一个原则的问题是它使用的命名空间的,虽然命名空间的是大量的语言很重要,我个人认为PHP的事实是没有在附近为他们准备好,而且还有一点就是我的框架没有与命名空间的构建 – RobertPitt

+0

@RoberPitt:任何PHP都使用命名空间,如果你没有指定,那就是全局命名空间。因此,只要您不需要为遗留原因而支持过时的PHP版本,就不会妨碍您使用明确指定名称空间的PHP代码。否则,Doctrine Version 1.2适用于全局命名空间中的PHP 5.2.3+。 – hakre

相关问题