我知道有些用户在 Zend Framework 中使用 Doctrine 2 而不是 Zend_Db。但我不知道为什么。为什么 Doctrine2 比 Zend_Db 好而 Zend_Db 不好?
谢谢
最佳答案
(7-Mar-2013) 免责声明:这个答案现在可能有点过时了。我目前没有跟上 PHP 社区的步伐,这个比较是在 Doctrine ORM v2 和 Zend Framework v1 之间进行的。这是苹果与橙子的比较,因为它们是两种不同的东西。
开箱即用的 Zend_Db 更像是 PDO 之上的一个增强型数据库抽象层,而 Doctrine 2 是一个对象关系映射器(它位于它自己的 DBAL 之上)。
Doctrine 2 对于更复杂的域层要好得多,因为您所有的业务逻辑、持久性逻辑等都在多个类中分离,因此它们不会担任多个角色。此外,因为你有更多的类——更清晰和松散耦合——这使得测试它们变得容易得多。
此外,您将只编写您使用 Zend_Db 的 SQL 的一小部分,因为您可以操作您的实体对象,而 Doctrine 将这些更改转换为数据库。生成的 SQL 还利用了事务,这为您带来了可观的性能提升!
我建议您阅读领域驱动设计,以更好地理解为什么 Doctrine 2 如此出色。
不过不要误会我的意思,您可以使用 Zend_Db 进行 DDD,但它并不是真正的 OOTB(因为它不是 ORM),并且不会像 Doctrine 2 那样强大和全面。
关于php - 是否值得将 Doctrine 2 与 Zend Framework 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4874558/