我有一個超級有用的類B,它有一個參數構造函數。我將在 Symfony DI 中定義其他服務時使用這個類無數次。B為了創建別名,如何避免重復服務定義 N 次?我想使用的偽代碼:A: aruguments: $someList: - B 'b1' - B 'b2' - B 'b3'C: arguments: $someOtherList: - B 'b4' - B 'b999' - ...D:...為什么我有這么多B的?因為通過我的算法存在重復行為,并且B通過構造函數使用單個參數就足以永遠不會重復該行為。為什么我不能B滾入Aor C?A并且C是集合/容器樣式類,我會有很多。會在為每個組合創建的類中創建爆炸式增長。如果沒有 DI,我會寫什么代碼?new A([ new B('b1'), new B('b2'), new B('b3'),]);...new C([ new B('b4'), new B('b99'), ...]);...new D([ ...那么,如何編寫等效的 symfony 服務定義呢?
1 回答

守著星空守著你
TA貢獻1799條經驗 獲得超8個贊
我發現的解決方案是內聯服務定義!
您可以通過添加!service到包含必要數據的對象來做到這一點:
A:
aruguments:
$someList:
- !service { class:B, arguments: ['b1']}
- !service { class:B, arguments: ['b2']}
- !service { class:B, arguments: ['b3']}
C:
arguments:
$someOtherList:
- !service { class:B, arguments: ['b4']}
- !service { class:B, arguments: ['b999']}
- ...
D:
- 1 回答
- 0 關注
- 88 瀏覽
添加回答
舉報
0/150
提交
取消