2012-02-13 109 views
0

我有幾個關於集成整合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並將其添加到我的庫文件夾中。

在此先感謝

回答

3

我通常把我的實體,以及在我的圖書館作爲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