有没有可能通过纯构造函数依赖注入而不是在控制器内使用服务容器来使控制器依赖于它们的服务?
我想以这种方式编写控制器:
<?php
class ArticleController extends \Symfony\Bundle\FrameworkBundle\Controller\Controller
{
private $articleFacade;
private $articleRepository;
public function __construct(ArticleFacade $articleFacade, ArticleRepository $articleRepository)
{
$this->articleFacade = $articleFacade;
$this->articleRepository = $articleRepository;
}
public function indexAction()
{
...
}
}
不幸的是,我发现Symfony的ControllerResolver并不是通过ServiceContainer来创建控制器的新实例,而是通过简单的return new $controller
调用。