Symfony Service Locator: установить службу по умолчанию - PullRequest
0 голосов
/ 03 июля 2019

Я хочу реализовать сервисный локатор в Symfony 3.4 (скоро будет обновлен до Symfony 4). И я хотел бы знать, если есть способ установить службу по умолчанию?

В настоящее время я должен это сделать (и это работает):

mylocator:
    class: 'Symfony\Component\DependencyInjection\ServiceLocator'
    tags: [ 'container.service_locator' ]
    arguments:
        -
            type1: '@service1'
            type2: '@default_service'
            type3: '@default_service'
            type4: '@default_service'

Но то, что я хотел бы сделать, это что-то вроде:

mylocator:
    class: 'Symfony\Component\DependencyInjection\ServiceLocator'
    tags: [ 'container.service_locator' ]
    arguments:
        -
            type1: '@service1'
            default: '@default_service'

Поэтому, когда я делаю $locator->get('type4') или $locator->get('foo_type'), я могу получить свой @default_service, и мне не нужно регистрировать каждый новый type, который будет использовать этот @default_service.

Знаете ли вы, есть ли способ сделать это?

Спасибо.

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