在Symfony 3中,您將如何根據領域驅動設計(DDD)區分以下內容?Symfony和領域驅動設計
- 服務(即在配置服務文件中定義的一個)
- 學說庫(\學說\ ORM \ EntityRepository)
- 實體(在實體文件夾中的類)
I」 m意識到該學說與Symfony是分離的(即它可以被完全省略)。但是沒有Doctrine的Symfony項目中的版本庫是哪一個?或者,也許Symfony(沒有教條)實際上不是真的遵循DDD?
編輯
我嘗試下面小樣的情景,使我的問題更加清晰
控制器有一個函數返回所有可用的管理者對項目
class ManagementController
public function getAvailableManagers(Array $project)
{
...
}
}
可用經理意味着他們手頭沒有項目,項目屬於他們的專業領域(例如客戶服務,業務關係,物流等)
但是由於設計不佳,專業領域不存儲在數據庫中,而是需要通過API調用調用到單獨的HR系統。稍後它將被集成到數據庫中
我會想(請隨時糾正我),管理器應該是一個存儲庫類,因爲它目前從2個不同的來源獲取其信息。問題是......我應該爲此使用Doctrine Repository嗎?或者,也許它應該只是一個普通的實體或者一個服務?
class ReplacementInstructionRepository extends \Doctrine\ORM\EntityRepository
{
private $id;
private $name;
private $speciality;
private $projects;
}
我需要一個關於如何拆分它的指南。謝謝
乾杯,
是什麼讓你認爲Symfony with Doctrine遵循DDD?大多數Symfony應用程序都是粗糙應用程序。如果適用,您可以使用Symfony遵循一些DDD原則。你寫的問題對我來說毫無意義。 – Cerad
感謝您的反饋意見,我用示例場景更新了問題。希望它會清除困惑:) –