我有一个超级有用的类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 关注
- 64 浏览
添加回答
举报
0/150
提交
取消