在我的 Symfony 项目中,我将有很多具有类似依赖关系的类(但是,这些类彼此并不直接相关)。例如,其中大多数需要访问 EventBus
。
在其他框架中,我能够为该类指定一个接口(interface),例如:
interface EventBusAwareInterface
{
public setEventBus(EventBus $bus);
public getEventBus() : EventBus
}
然后配置 DI 容器以识别实现此接口(interface)的此类对象,并使用适当的参数调用它们的 setEventBus()
方法。
我想知道 Symfony4 中是否有一种方法可以做到同样的事情。
最佳答案
您可以在 services.yaml
中使用 _instanceof
指令,如下所示:
services:
_instanceof:
App\EventBusAwareInterface:
calls:
- method: setEventBus
arguments:
- '@event.bus.service'
关于php - Symfony 中基于接口(interface)的 DI 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51313473/