我知道有些用户在 Zend Framework 中使用 Doctrine 2 而不是 Zend_Db。但我不知道为什么。为什么 Doctrine2 比 Zend_Db 好,为什么 Zend_Db 不好?
Thanks
(2013 年 3 月 7 日)免责声明:这个答案现在可能有点过时了。我目前没有关注 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 那样强大且功能齐全。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)