我的控制器中有多个函数,很多函数都调用$usermgr = $this->get('usermanager');
(其中usermanager是config.yml中定义的服务)。
这意味着代码会重复多次。有没有办法在控制器中定义$ usermgr一次?通常我会考虑一个__construct,但我相信用控制器是不可能的?
答案 0 :(得分:1)
在控制器中的多个方法中获取相同的服务没有任何问题。
您可以将控制器更改为服务(http://symfony.com/doc/current/cookbook/controller/service.html和http://richardmiller.co.uk/2011/04/15/symfony2-controller-as-service/),然后注入该服务。虽然这遵循最佳实践,但您目前的方式并没有错。
您无法使用Symfony base Controller
类在构造函数中请求该服务,因为初始化后会设置服务容器。