Symfony自动解析控制器而无需注册为服务

时间:2016-04-04 11:21:14

标签: php symfony

我正在使用Symfony 3,我正在研究如何通过构造函数将服务注入我的控制器。我不想将每个控制器注册为服务。

深入研究代码我已使用以下内容覆盖了默认的ControllerResolver的instantiateController方法:

protected function instantiateController($classname) {
    return $this->container->get($classname);
}

注意:我已经在构造函数中传入了容器,并且我正在使用Symfony的依赖注入组件。

然而,这会引发错误:

  

您已请求不存在的服务   “控制器\ HelloController中”

我认为自动解析已内置于最新版本的Symfony DI中。我想知道是否有人能告诉我我做错了什么。

由于

1 个答案:

答案 0 :(得分:1)

从Symfony 3.3开始,您可以通过PSR-4 autodiscovery将控制器注册为服务。

# app/config/services.yml
services:
    _defaults:
        autowire: true

    App\:
        resource: ../{Controller}