我正在使用Symfony 3.3开始一个新项目 . 我想使用新的自动配置/自动装配功能,但我遇到了“问题”,我不知道如何解决 .
我有来自外部包的以下服务定义:
command_bus:
class: Name\Space\To\MessageBusSupportingMiddleware
...
event_bus:
class: Name\Space\To\MessageBusSupportingMiddleware
...
这两种服务都基于相同的“MessageBusSupportingMiddleware”类,但它们的用途当然完全不同 .
现在我希望Symfony 3.3自动将“command_bus”服务注入我的控制器 . 但为此,我必须在构造函数中使用这样的类:
public function __construct(
MessageBusSupportingMiddleware $commandBus
){
$this->commandBus = $commandBus;
}
在这种情况下,Symfony抱怨,因为它实际上找到了与此类相关的几个服务定义,因此它无法知道要提供哪个 .
您认为我怎么能处理这种情况?
1 回答
我实际上找到了克服这种情况的方法 .
我在自己的项目中创建了两个类:
它们的唯一目的是能够覆盖外部包中的默认服务定义,并使用不同的实现来自动装配它们 . 我的服务覆盖配置只需在
services.yml
文件中完成,如下所示: