集成Doctrine 2.2与Zend框架以获得最佳性能

问题描述:

我有几个关于集成整合Zend框架的教条2.2 &的问题。我知道有很多问题讨论同一个问题,但我对此有具体的问题。集成Doctrine 2.2与Zend框架以获得最佳性能

  1. 什么是放置Doctrine Entities, Proxies, Repositories,...etc最佳性能的最佳地点?大多数集成技术在library文件夹中的Namespace中生成实体,但我想知道是否将它们放入应用程序中的models folder会更好地提高性能。 喜欢而不是搜索整个包含路径我的模型文件夹将更快找到。

  2. 关于性能的最佳集成方法是什么?我打算使用Bisna集成,但如果有更好的集成方法,请让我知道。

  3. 如果我想为Doctrine添加一个服务层哪里是最好的地方?

注:

  • 我用Zend tool为我的项目生成的默认文件夹结构。
  • 我下载了Doctrine 2并将其添加到我的库文件夹中。

在此先感谢

我通常把我的实体,以及在我的图书馆作为Bisna视频proberly告诉你。但我同意你这不是最好的地方,因为它是应用程序特定的代码。更好的方法就像应用程序/实体一样。我不认为它的表现是可以衡量的。

我喜欢Bisna集成很多。我认为这是ZF的Doctrine2最好的整合之一。它很小,简单而干净。通过Bisna集成,可以很容易地修改application.ini中的缓存层,因此从这种方法来看,它对性能有好处。但整合不是火箭科学,所以我不认为它或者在其他整合之间的性能上有所不同。

您需要注意一些配置选项以提高性能。您应该禁用生产环境中的自动代理生成,并使用Doctrine-CLI创建它们。最好的做法是使用APC或Memcache来启用Annotation和DQL-> SQL缓存,这将大大提高性能。

通过传递查询的生命周期来保证Doctrine2中有很多可能性来缓存查询。如果您将APC或Memcaching设置为默认缓存,那么您的数据库结果集将保存在那里。

希望我的回答能帮助你一点,如果你还想要更多的问题,

+0

那么仓库和服务层呢?我仍然有一些麻烦来定义两者应该如何。我的意思是服务层实际上是我的业务逻辑(即我的模型),它应该在我的应用程序中。他们之间有什么区别 – Songo 2012-02-13 09:37:57

+0

我会把存储库和你的代理放在application/entities/proxy和appliation/entities/repository中。服务层究竟意味着什么? – 2012-02-13 09:54:01