Symfony DI передает новый экземпляр с аргументами конструктору, не создавая миллионы псевдонимов служб?Php

Кемеровские программисты php общаются здесь
Anonymous
Symfony DI передает новый экземпляр с аргументами конструктору, не создавая миллионы псевдонимов служб?

Сообщение Anonymous »

У меня есть очень полезный класс B, у которого есть конструктор с одним аргументом.

Я буду использовать этот класс миллионы раз при определении других сервисов в Symfony DI.

Как избежать дублирования определения службы B N раз ради создания псевдонимов?

псевдокод, который я бы хотел использовать:

Код: Выделить всё

A:
aruguments:
$someList:
- B 'b1'
- B 'b2'
- B 'b3'
C:
arguments:
$someOtherList:
- B 'b4'
- B 'b999'
- ...
D:
...
Почему у меня так много четверок? Потому что в моем алгоритме есть повторяющееся поведение, и B с одним аргументом через конструктор достаточно, чтобы никогда не повторять такое поведение.

Почему я не могу выполнить B< /code> в 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?

Подробнее здесь: https://stackoverflow.com/questions/606 ... ating-bazi

Вернуться в «Php»