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

¿Fue útil?

Solución

pseudocódigo

MyBaseController impliments Symfony\Component\Di\ContainerAwareInterface
  setContainer($container)
    $this->container = $container

  getEntityManager
    return $this->container->get('doctrine.orm.entity_manager')
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top