¿Hay alguna posibilidad de hacer que los controladores dependan de sus servicios no mediante el uso del contenedor de servicio dentro de ellos sino mediante la inyección de dependencia pura del constructor?Symfony 2: inyección de dependencia (DI) de los controladores
me gustaría escribir controladores de esta manera:
<?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()
{
...
}
}
Desafortunadamente lo que puedo ver Symfony ControllerResolver hace nuevas instancias de los controladores no a través de ServiceContainer sino a través de simples return new $controller
llamada.
Gracias por su respuesta. –
Eche un vistazo a mi [AbstractControllerBundle] (https://github.com/elnur/ElnurAbstractControllerBundle). Está destinado a proporcionarle un [servicio principal] (http://symfony.com/doc/current/cookbook/service_container/parentservices.html) para simplificar el uso de controladores como servicios. –
No me parece que FOSUser haga esto? ¿Me estoy perdiendo el punto? La pregunta de Václav fue acerca de inyectarlos a través del método constructor, mientras que FOSUser hace $ this-> container-> get ('service'); https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Controller/RegistrationController.php – Steve