我正在使用 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/