php - Symfony 自动解析 Controller ,无需注册为服务

标签 php symfony

我正在使用 Symfony 3,我正在研究如何通过构造函数将服务注入(inject)到我的 Controller 中。我不想将每个 Controller 注册为服务。

深入研究代码,我使用以下内容重写了默认的 ControllerResolver 的 instantiateController 方法:

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

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

但是这会引发错误:

You have requested a non-existent service "controllers\hellocontroller"

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

谢谢

最佳答案

从 Symfony 3.3 开始,您可以通过 PSR-4 autodiscovery 将 Controller 注册为服务.

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

    App\:
        resource: ../{Controller}

关于php - Symfony 自动解析 Controller ,无需注册为服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36401218/

相关文章:

php - DataTables columnFilter number-range 过滤

php - 安装并配置OCI8以将oracle连接到php

php - Symfony2-特定捆绑软件的错误处理程序

security - Symfony 2 静态 Assets 授权(防火墙后面的 .js)

javascript - 我们可以在 javascript 中嵌入 form_dropdown 函数吗?

php - 在 PHP 中使用共享内存时出现意外错误(PHP 警告 : shmop_open(): unable to attach or create shared memory segment 'Invalid argument' )

javascript - HTML5 服务器发送的事件不是实时的?

php - symfony2中的全局变量在php模板中使用

php - 使用 GET 方法进行多个条件搜索

php - 使用 PHPUnit 发送 POST 请求