【发布时间】:2012-04-23 18:33:22
【问题描述】:
有没有机会让控制器依赖于他们的服务,而不是通过使用它们内部的服务容器,而是通过纯粹的构造函数依赖注入?
我想这样写控制器:
<?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 调用来创建新的控制器实例。
【问题讨论】:
标签: model-view-controller symfony dependency-injection fosuserbundle