Я хочу реализовать сервисный локатор в 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
.
Знаете ли вы, есть ли способ сделать это?
Спасибо.