2011-09-23 84 views
0

在我的Symfony2項目中,我有一個ModelBundle,它包含我的實體,以及其他用於前端,後端等的bundle,它們利用該ModelBundle。Symfony2中的實體特定函數

我有幾個模型特定的功能,執行一些實體特定的任務。 我把這些放在哪裏?

  1. 我是否在我的實體文件夾旁邊創建了一個單獨的「模型」文件夾,並且 將所有這些功能放在那裏?
  2. 我是否在我的'ModelBundle'中創建了一個控制器,該控制器將這些 函數保存爲操作?這可能很奇怪,因爲我的 頭腦中的控制器接受HTTP請求並返回HTTP響應,因此在此上下文中不適用 。
  3. 我會把它們放入實體類本身嗎?這很好嗎? 當我重新生成 我的ORM時,它們有可能被覆蓋嗎?
  4. 我在找自定義存儲庫嗎?我可以製作這些文件並將其放入「模型」文件夾或其他內容中。 http://www.doctrine-project.org/docs/orm/2.0/en/reference/working-with-objects.html#custom-repositories

PS:我愛的Symfony2,但我會很高興,當每個人都有一組定義爲框架的最佳實踐:-)

回答

1

這將會是有益的知道什麼類型的基於模型的您計劃編寫的特定功能。

如果功能是針對您已從數據庫中提取的實體,則它屬於實體類。

如果功能與根據特定條件查找實體或實體組有關,則它屬於定製存儲庫類。

我不認爲模型類和實體類應該是不同的。恕我直言,這是一個不必要的抽象層次。

你認爲這個功能不屬於控制器是正確的。

如果您確實需要使用自定義存儲庫,建議將它們保存在「實體」文件夾或「存儲庫」文件夾中。我個人保留在「實體」中,但這可能是長期使用Doctrine 1並被用於「表」類的副作用。

我希望這可以幫助,但如果您有任何問題,請發佈一些您希望完成的更多細節。

+0

感謝m8,它確實是根據特定標準找到一個實體,所以定製回購就是這樣。 我已經把它們放到'Repository'文件夾中。到目前爲止,它似乎工作:) 感謝您的幫助! – Dieter