我想在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
您知道是否有办法吗?
谢谢。