php - 是否值得将 Doctrine 2 与 Zend Framework 一起使用?

标签 php zend-framework doctrine-orm

我知道有些用户在 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/

相关文章:

php - SQL 从历史记录中返回第一个记录日期

php - 将数据库值存储到变量中

php - zend 搜索 lucene 查询 api : boosting a term

symfony - 原则 - 一次插入多个文档时,不会激发所有文档的 postUpdate 事件订阅者

php - 在 laravel 5 中使用参数进行路由

php - 如何为 Codeigniter 表创建可排序表 THEAD 链接

php - 无法打开流 : No such file or directory

php - ZEND 和 MySQL - 如何搜索和 ORDER BY(排序)相关性?

php - API 平台 : Normalizing a Mapped Superclass only includes properties from the superclass, 不是子类

php - 使用 parameter.yml 值的 Symfony 3 Datafixtures