namespace App;
class HandlerCollection
{
public function __construct(
// the attribute must be applied directly to the argument to autowire
#[TaggedIterator('app.foo_tag')]
iterable $handlers
) {
}
}
Теперь все сервис интерфейсы FooInterface попадут в конструктор HandlerCollection
Если нет атрибутов еще, то так для HandlerCollection (в конструкторе все останется также, кроме удаленного атрибута):
App\HandlerCollection:
# inject all services tagged with app. foo_tag as first argument
arguments:
- !tagged_iterator app.foo_tag
указать валидную карту можно указав валидную карту
границы РФ еще не закрыты (как минимум для поездки открыть карту др страны), либо пользуйтесь русским аналогом гитлаба
Сергей Беловенцев, обычно на этот случай в симфони проектах делают регистри или маппер
регистрируя в контейнере по типу, например по тегам все фетчеры добавить в контейнер, и потом в фабрике создавать нужный по типу
Как уже отметили, автовайринг работает в инстансы, которые создаются контейнером... Когда контейнер упарвляет инстансом, он может делать с ним все то, что в контейнеры понастраивали
Если вы руками создаете объект, то контейнер про него ничего не знает :)
// src/HandlerCollection.php
Теперь все сервис интерфейсы FooInterface попадут в конструктор HandlerCollection
Если нет атрибутов еще, то так для HandlerCollection (в конструкторе все останется также, кроме удаленного атрибута):