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

时间:2012-02-13 08:50:47

标签: zend-framework doctrine doctrine-orm

我有几个关于整合整合Doctrine 2.2&amp ;;的问题。 Zend框架。我知道有很多问题可以讨论同一个问题,但我对此有具体的问题。

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

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

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

  4. 注意:

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

    提前致谢

1 个答案:

答案 0 :(得分:3)

我通常把我的实体放在我的图书馆里,就像Bisna视频中所说的那样。但我同意你的意见,这不是最好的地方,因为它是特定于应用程序的代码。更好的方法是应用程序/实体。我不认为这对于表现来说是不可测量的。

我非常喜欢Bisna的整合。我认为这是ZF的Doctrine2最好的集成之一。它小巧,简单,干净。通过Bisna集成,您可以轻松地修改application.ini中的缓存层,因此从这种方法来看,它有利于提高性能。但是整合并不是火箭科学所以我不会在其他集成之间对性能产生任何影响。

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

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

希望我的回答对你有所帮助,如果你想要更多的东西只是问一下!