早上好,我有一个关于在Symfony中使用容器的简短问题。
对我来说,有两种很好的方法可以使用容器,例如一个班级:
将类定义为服务并在services.yml中注入容器
扩展“ContainerAware”类。
在这种情况下,最佳做法是什么?
答案 0 :(得分:1)
实际上取决于很多不同的东西。有些人认为绕过容器实际上是不好的做法,你应该只传递你需要的服务而不是从容器中取出它们。
对于我已经完成的项目,传入容器是正常的,通常在我们创建服务时,我们将类定义为服务并将其注入services.yml,但是,在处理命令时,调度员等我们只是扩展" containerAwareCommand"或" containerAwareEventDispatcher"分别。这背后的原因是他们想要更好地控制他们的服务,但是当使用特定于symfony的东西(例如命令)时,最好订阅框架方法。