0

我的控制器中有多个功能,其中很多都调用$usermgr = $this->get('usermanager');(其中 usermanager 是 config.yml 中定义的服务)。

这意味着代码会重复多次。有没有办法在控制器中只定义一次 $usermgr ?通常我会考虑使用 __construct 但我相信控制器不可能做到这一点?

4

1 回答 1

1

在控制器中以多种方法获得相同的服务并没有错。

您可以将控制器更改为服务(http://symfony.com/doc/current/cookbook/controller/service.htmlhttp://richardmiller.co.uk/2011/04/15/symfony2-controller-as -service/ ) 然后注入该服务。虽然这遵循最佳实践,但您当前的方式并没有错。

您不能使用 Symfony 基Controller类在构造函数中请求该服务,因为服务容器是在初始化后设置的。

于 2013-07-30T09:20:58.717 回答