Domanda

Ci sono alcuni articoli in giro che toccano questo argomento, ma nessuno di loro sembrava essere una soluzione utilizzabile pratica per me. Il mio obiettivo è quello di mettere alcuni metodi di base (quelli che ho bisogno in ogni controller in ogni caso) in un BaseController, per es.

   $this->getEntityManager();
   $this->getRequest();
   $this->getRepository($entityName);

Come si può fare?

Per quanto ne sappia dobbiamo iniettare i servizi nel BaseController, ma come faccio a dire le classi di utilizzare un servizio per la loro superclasse? C'è qualche articolo decente sui controller e Dependency Injection [1], ma alla fine mi sono bloccato con tale approccio anche vedere il mio commento qui: [2]

[1] http://miller.limethinking.co.uk / 2011/04/15 / Symfony2 controller-as-service /

[2] http: //miller.limethinking .it / 2011/04/15 / Symfony2 controller-as-service / # comment-579

È stato utile?

Soluzione

pseudocodice

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

  getEntityManager
    return $this->container->get('doctrine.orm.entity_manager')
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top