我使用过Zend_Db,我发现它非常好,但是为什么有些书籍和文档主张在Zend_Db上使用Doctrine 2?我不是ORM方面的专家,但是Zend_Db可以执行某些功能,而Doctrine ORM不能执行某些功能吗?
哪个更安全?
两者兼而有之的专家:您建议我使用哪一个?
有教义2的书吗?
最佳答案
本身没有真正的功能;最后,您可以通过ZDB和ORM或任何其他方法来处理持久性。但是使用ORM有时可以使您将注意力更多地集中在模型上,而不是持久性上。
实际上,我发现official Doctrine2 documentation相当不错。
在Zend Framework应用程序中有用的另一件事是Zend应用程序资源(Boris Guery的like this one),允许您在引导时设置Doctrine,以便您可以轻松访问插件, Controller 和其他服务中的实体管理器。有关通过_initXXX()
方法执行Doctrine2引导的示例,请参见由Eddie Jaoude驱动的code in this project。
不,Doctrine2与Doctrine1明显不同。
好吧,我不是专家。但是我发现Doctrine2(这是一种基于映射器的持久性方法)比Doctrine1的ActiveRecord方法更自然,更容易允许我的模型代表实际的域对象-用户,帖子等-而不是成为对象检索的网关和坚持不懈。通过使用EntityManager
作为持久性的主要途径,我发现构造其他需要持久性的服务更加容易。我只是将EntityManager
传递为构造函数参数。 Doctrine2的存储库为放置自定义查询提供了一个干净的地方。
这并不是说在ZDB或其他ORM下这一切都是不可能的。只是我发现使用Doctrine2很简单。
简介:Doctrine2非常棒。 ;-)