У меня есть супер полезный класс 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
в A
или 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 определения службы?