Как запустить динамические подуслуги внутри службы в Symfony 3? - PullRequest
0 голосов
/ 02 июля 2018

У меня есть основная служба, которая должна запускать вспомогательные службы в зависимости от параметра.

class MainService
{
    /**
     * $serviceIds = ['sub-a', 'sub-b', 'sub-c']
     */
    public function run(array $serviceIds)
    {
        foreach($serviceIds as $id) {
            $subservice = $this->getSubService('service.' . $id);
            $subservice->doSomething();
        }
    }
}

MainService должен запускать только несколько подсервисов, но в service.yml зарегистрировано до 80 подсервисов. Я не хочу вставлять их все в MainService, потому что во время выполнения это означает, что они будут загружены в память. Я хочу, чтобы загружались только полезные сервисы. Я знаю, что если я внедряю сервисный контейнер в конструктор MainService, я могу получить доступ к этим конкретным подсервисам, но я много раз читал, что внедрение сервисного контейнера - это плохо. Вы знаете, как я могу справиться с этим?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...