我正在尝试连接两个不同的适配器服务,它们实现相同的接口。 但在这种情况下仍然使用when@dev子句不起作用
services:
App\Mocks\Adapter\ExampleAdapterMock: ~
App\Adapter\ExampleAdapter: ~
App\Adapter\ExampleAdapterInterface: '@App\Mocks\Adapter\ExampleAdapterMock' ``
when@dev:
services:
App\Adapter\ExampleAdapterInterface: '@App\Mocks\Adapter\ExampleAdapterMock'
when@prod: &prod_adapter
services:
App\Adapter\ExampleAdapterInterface: '@App\Adapter\ExampleAdapter'
when@qas: *prod_adapter
我不明白为什么它不起作用,也许你可以分享错误消息?
您还可以为您的接口声明一个工厂,它将根据上下文(参数、环境等)返回正确的实现。
App\Adapter\ExampleAdapterInterface:
factory: '@App\Adapter\ExampleAdapterFactory'
arguments: ['%kernel.environment%']