Как объявить сервисы в Symfony 4, когда у класса может быть несколько определений - PullRequest
0 голосов
/ 14 мая 2018

Таким образом, в основном, если вы хотите перейти на 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:
        ...

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

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

...