Cómo implementar una base de base para los controladores Symfony2
-
22-10-2019 - |
Pregunta
Hay algunos artículos sobre qué tocan este tema, pero ninguno de ellos parecía ser una solución práctica utilizable para mí. Mi objetivo es poner algunos métodos básicos (aquellos que necesito en cada controlador de todos modos) en un controlador base, por ejemplo,
$this->getEntityManager();
$this->getRequest();
$this->getRepository($entityName);
¿Cómo se puede hacer esto?
AFAIK Tenemos que inyectar los servicios en el basecontrolador, pero ¿cómo les digo a las clases que usen un servicio para su superclase? Hay un artículo decente sobre controladores e inyección de dependencia [1], pero finalmente me quedé atrapado con ese enfoque también, vea mi comentario aquí: [2
[1] http://miller.limethinking.co.uk/2011/04/15/symfony2-controller-asservice/
[2] http://miller.limethinking.co.uk/2011/04/15/symfony2-controller-asservice/#comment-579
Solución
pseudocódigo
MyBaseController impliments Symfony\Component\Di\ContainerAwareInterface
setContainer($container)
$this->container = $container
getEntityManager
return $this->container->get('doctrine.orm.entity_manager')