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