10

我才开始发现 Doctrine 并注意到官方文档指向 1.2,因为这似乎是当前的稳定版本。

我还注意到,与 Doctrine 1 相比,很多人似乎提到 Doctrine 2 是一个“不同的世界”,但是在查看What's new页面时,我并没有真正看到大量的变更日志。我猜这个列表只显示了与之前的 2.x 版本相比的最新添加。在谷歌搜索同样的问题后,我希望能找到一个很好的差异汇总,但我似乎看不到。

我目前正在阅读 Doctrine 1 手册,并且在我读完 Doctrine 2 后也会这样做,但是对重大变化的适当概述将非常感激,所以我的问题是:

Doctrine1 和 Doctrine2 有什么区别?

4

2 回答 2

12

嗯... Doctrine1 和 Doctrine2 完全无法比拟,因为它们实现了完全不同的方法。

  1. Doctrine1 实现了 ActiveRecord 设计,而 D2 实现了 DataMapper 设计——这是最重要的区别。
  2. D2 需要 PHP 5.3 或更高版本,并使用其优点,如命名空间。
  3. D2 分为一组较小的子项目:Doctrine Commons、Doctrine DBAL、Doctrine ORM(用于 RDBMS)和 Doctrine ODM(用于 MongoDB)。
  4. D2 要快得多。
  5. D2 支持注释。

虽然 D2 还不稳定,但它是未来,所以不要浪费时间学习 D1。

于 2010-12-09T16:30:46.727 回答
5

看看这个演示文稿(也许还有一些相关的其他演示文稿),真的很好!

于 2010-12-09T16:37:19.130 回答