如何从config.yml注入一系列服务,将类名(带名称空间)提供给控制器?我需要从控制器中的每个服务运行一个函数。目前我在控制器中使用$this->get('service');
,但我需要让控制器独立于服务。有没有办法做到这一点?
我不知道名字和将注入多少服务,尽管它们都实现了接口。
答案 0 :(得分:1)
一般来说,注入一系列服务并不是正确的方法(即使有办法实现,我认为不存在)
您不想编写依赖于容器的代码的全部原因是为了保持代码库的灵活性,轻松性和可测试性。实际上,可变数组服务只是一个迷你容器,所以如果你实现了,你只是缩小问题的范围,而不是消除它。您仍然在使您的代码依赖于任意一堆服务。
我强烈建议明确定义控制器所需的每项服务(如Rufinus和Cerad评论中的链接所述),或者使用类似jms/di-extra-bundle的内容。
也许您需要对可用的配置选项进行更多研究?
http://symfony.com/doc/current/cookbook/bundles/configuration.html