интерфейс?
Кейс: тг бот, каждая команда как отдельный класс. Есть метод support(), который и будет определять, какая команда должна в данный момент выстрелить.
https://symfony.com/doc/current/service_container/service_subscribers_locators.html#indexing-the-collection-of-services
Это для классов, это понятно. А если мне надо по карте '/start' => StartCommand::class, '/foo' => FooCommand::class
Напиши компайлер-пасс, который соберёт все твои обработчики команд и засунет их в сервис-локатор, где ключом будет имя команды (start, foo). Дальше используй сервис-локатор в нужном месте.
Обсуждают сегодня