想象一下2個實體 - 用戶和組。用戶總是在一個組中,而一個組總是有一個超級用戶。這些實體類只保存數據(沒有邏輯)。使用Symfony的依賴注入組件在數據映射模式中循環依賴
兩個實體都有Mapper類(處理SQL查詢):UserMapper和GroupMapper。兩者都依賴於對方的時候查詢它的實體:
- 查詢用戶時UserMapper需要GroupMapper來獲取用戶的$組
- 查詢組時GroupMapper需要UserMapper檢索集團$超級
我一直在使用Symfony的依賴注入組件在構造函數中注入依賴關係。但在這種情況下,我遇到了這種方法的麻煩。我知道我可以使用像Doctrine這樣的ORM來處理這個問題,但目前這不是一個選項。這個問題最乾淨/最好的解決方案是什麼?
這裏是方案的圖示:
是的,我的解決方案几乎與當時相同。我有一段時間來思考它(一年多了,呵呵),我相信還有第三種解決方案 - 使用Lazy Load Proxy。我認爲最終的解決方案將是一個2階段setter注入,但這將需要修改DI組件來源。 –