如何连接两个不同的服务,基于 symfony 7 中的环境实现相同的接口

问题描述 投票:0回答:1

我正在尝试连接两个不同的适配器服务,它们实现相同的接口。 但在这种情况下仍然使用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

symfony
1个回答
0
投票

我不明白为什么它不起作用,也许你可以分享错误消息?

您还可以为您的接口声明一个工厂,它将根据上下文(参数、环境等)返回正确的实现。

App\Adapter\ExampleAdapterInterface:
    factory: '@App\Adapter\ExampleAdapterFactory'
    arguments: ['%kernel.environment%']
© www.soinside.com 2019 - 2024. All rights reserved.