Esiste la possibilità di rendere i controllori dipendenti dai loro servizi non tramite l'utilizzo di un contenitore di servizi al loro interno, ma mediante un'iniezione di dipendenza pura del costruttore?Symfony 2: Iniezione di dipendenza (DI) dei controllori
vorrei scrivere controller in questo modo:
<?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()
{
...
}
}
Purtroppo posso vedere Symfony ControllerResolver fa nuove istanze di controllori non tramite ServiceContainer ma via semplice return new $controller
chiamata.
Grazie per la risposta. –
Dai un'occhiata al mio [AbstractControllerBundle] (https://github.com/elnur/ElnurAbstractControllerBundle). Ha lo scopo di fornire un [servizio parent] (http://symfony.com/doc/current/cookbook/service_container/parentservices.html) per semplificare l'utilizzo dei controller come servizi. –
Non mi sembra che FOSUser lo faccia? Mi manca il punto? La domanda di Václav consisteva nell'iniezione tramite il metodo del costruttore, mentre FOSUser fa $ this-> container-> get ('service'); https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Controller/RegistrationController.php – Steve