Как объявить сервисы в Symfony 4, когда класс может иметь несколько определений

В общем, если вы хотите перейти на Symfony 4, у вас больше не будет сервисов, объявленных как:

services:
some.service:
class: AppBundle\SomeService
...

Вы должны изменить это на:

services:
AppBundle\SomeService:
...

Но что происходит, когда у вас есть несколько определений для одного и того же класса? Например:

services:
some.service1:
class: AppBundle\SomeService
...
some.service2:
class: AppBundle\SomeService
...
some.service3:
class: AppBundle\SomeService
...

Все они используют один и тот же класс с именем SomeService, но имеют разные конфигурации, поэтому в зависимости от ваших потребностей вы можете вызывать some.service1, some.service2 или some.service3. Теперь, как этот файл services.yml будет изменен в соответствии со стандартами Symfony 4? Потому что если вы делаете что-то вроде:

services:
AppBundle\SomeService:
...
AppBundle\SomeService:
...
AppBundle\SomeService:
...

Это просто переопределит ваши предыдущие объявления и сохранит только последнее.

Любое решение?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …