我目前正在爲一個新的Zend Framework 2項目使用DDD(域驅動設計)。一切正常,但我確實有關於應用程序服務的問題。在DDD內使用ZF2控制器插件進行應用程序服務?
我知道應用程序服務位於應用程序層,並且是域邏輯的入口點。例如,他們可以訪問域服務或存儲庫。
現在我想知道是否應該將應用程序服務作爲控制器插件來實現。在經典的MVC應用程序中,這個控制器插件可以處理來自被叫域服務或存儲庫的結果。根據這些結果,他們可以生成重定向響應或將數據/表單傳遞給ViewModel。如果這個邏輯封裝在一個插件中,我的控制器只需調用插件並返回插件的結果。
我完全錯了嗎?或者你寧願保留邏輯如何對控制器中的域服務或存儲庫的結果作出反應?
最好的問候,
拉爾夫
我不確定您在域和應用程序服務之間做出的實際區別。我想你可以爲你的服務類製作插件,但目前我看不到優勢。我有控制器工廠,並注入控制器所需的服務。有時候我的服務本質上就像存儲庫一樣,但我仍然一直定義一個服務,因爲應用程序定義了一個基本服務,它處理所有的域安全。 – dualmon 2015-03-02 15:50:04
那麼域服務只處理屬於域的東西,而應用服務則是作爲應用程序和域之間的網關處理。這些應用程序服務將注入存儲庫或域服務,並且控制器獲取注入的應用程序服務。 – Frille2012 2015-03-04 12:46:26