컨트롤러는 서비스 컨테이너를 사용하지 않고 순수한 생성자 종속성 주입을 통해 서비스에 의존하게 할 수 있습니까?Symfony 2 : 컨트롤러의 DI (Dependency Injection)
나는이 방법으로 컨트롤러를 작성하려합니다 :
<?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()
{
...
}
}
를 Unfortunatelly 내가 심포니 ControllerResolver하지 ServiceContainer를 통해 간단하지만 return new $controller
호출을 통해 컨트롤러의 새로운 인스턴스를 않는 볼 수 있습니다.
답변 해 주셔서 감사합니다. –
내 [AbstractControllerBundle] (https://github.com/elnur/ElnurAbstractControllerBundle)을 살펴보십시오. 컨트롤러를 서비스로 단순화하기 위해 [상위 서비스] (http://symfony.com/doc/current/cookbook/service_container/parentservices.html)를 제공하기위한 것입니다. –
FOSUser가하는 것처럼 보이지 않습니다. 요점을 놓치고 있습니까? Václav의 질문은 FOSUser가 $ this-> container-> get ('service')를 수행하는 동안 생성자 메소드를 통해 주입하는 것이 었습니다. https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Controller/RegistrationController.php – Steve