我正在使用Symfony 3,我正在研究如何通过构造函数将服务注入我的控制器。我不想将每个控制器注册为服务。
深入研究代码我已使用以下内容覆盖了默认的ControllerResolver的instantiateController方法:
protected function instantiateController($classname) {
return $this->container->get($classname);
}
注意:我已经在构造函数中传入了容器,并且我正在使用Symfony的依赖注入组件。
然而,这会引发错误:
您已请求不存在的服务 “控制器\ HelloController中”
我认为自动解析已内置于最新版本的Symfony DI中。我想知道是否有人能告诉我我做错了什么。
由于
答案 0 :(得分:1)
从Symfony 3.3开始,您可以通过PSR-4 autodiscovery将控制器注册为服务。
# app/config/services.yml
services:
_defaults:
autowire: true
App\:
resource: ../{Controller}