Atributo do Controller - Entity

40 views
Skip to first unread message

Michel Candido

unread,
Nov 2, 2012, 1:46:45 PM11/2/12
to symfo...@googlegroups.com
Boa tarde pessoal,

Estou com uma duvida que é a seguite, quando vocês criam um controller vocês criam atributos de classe para a entidade em questão ex:
ou vocês sempre que tem uma nova action fazem o $entity = getRepository('UserBundle:User')->findAll();


ciro vargas

unread,
Nov 2, 2012, 4:07:56 PM11/2/12
to symfo...@googlegroups.com

eu crio um atributo e instancio o entity manager na action já chamo direto o repositorio
 
 
 
___
Att. Ciro vargas
Desenvolvedor Web/Mobile
Skype: ciro.vargas
Tel.: +55 61 8512 2992


De: Michel Candido <mychel...@gmail.com>
Para: symfo...@googlegroups.com
Enviadas: Sexta-feira, 2 de Novembro de 2012 15:46
Assunto: [symfony-pt] Atributo do Controller - Entity

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Symfony Brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para symfo...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para symfony-pt+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/symfony-pt?hl=pt-BR.


Marcelo Rodrigues

unread,
Nov 2, 2012, 4:58:41 PM11/2/12
to symfo...@googlegroups.com
Só vale a pena usar dessa forma se o seu Controller for um serviço que recebe o EntityManager (ou o repositório) no construtor, na minha opinião. De qualquer forma, isso gera um acoplamento e dependência desnecessários, na minha visão. 

Se o intuito é apenas reaproveitar a instância do repositório sem ter de reescrever código, crie um factory method no controller para isso. 

class Controller
{
  public function indexAction()
  {
    $users =  $this->getRepository()->findAll();
  }

  public function getRepository()
  {
    return $this->getDoctrine()->getEntityManager()->getRepository('UserBundle:User');
  }
}

Posso estar enganado, mas o que você quer é algo que frameworks como Cake e CodeIgniter fazem, que é ter o controller acoplado ao model, e na arquitetura deles, o padrão é o ActiveRecord, bem diferente do conceito usado pelo Symfony e Doctrine2. 

Marcelo

jean...@gmail.com

unread,
Nov 3, 2012, 7:38:15 AM11/3/12
to symfo...@googlegroups.com
Olá Michel,

Ultimamente estou utilizando injeção de dependência para fazer o que você comentou.
Ao invés de instânciar sempre que eu precisar eu configuro o arquivo services.xml com as instâncias que vou precisar e utilizo o
$this->get('nome.da.instancia')->metodoDaInstancia();
--
Atenciosamente,
Jean Carlos

Michel Candido

unread,
Nov 3, 2012, 11:48:58 AM11/3/12
to symfo...@googlegroups.com
Gostaria de agradecer a todos, foi bem explicado esse assunto.

Obrigado!



Reply all
Reply to author
Forward
0 new messages