Tirar TTransaction do Controller Quando vamos salvar ou editar um Produto, utilizamos um método do nosso controller. Exemplo: Nesse método tem a transação com o banco de dados e objetos de model e repository e Critérios de seleção e etc... Gostaria de colocar algumas TTransaction no meu Model ou na camada de Serviços (Service). O...
AM
Tirar TTransaction do Controller  
Fechado
Quando vamos salvar ou editar um Produto, utilizamos um método do nosso controller.
Exemplo:
 
  1. <?php class ProdutoForm extends TPage{//#code...}; new ProdutoForm->onSave(); ?>


Nesse método tem a transação com o banco de dados e objetos de model e repository e Critérios de seleção e etc...

Gostaria de colocar algumas TTransaction no meu Model ou na camada de Serviços (Service).

Objetivo: deixar meu controller mais limpo, e colocar tudo isso dentro de um método no model ou do service.

Isso seria uma boa pratica? Teria algum problema com segurança ou coisa do tipo.

Obrigado!


Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (2)


EP

Estou começando com o framework agora e também tive essa dúvida.
Acredito que seja responsabilidade do model definir qual banco será usado, e não do controller.
PD

Eu acredito que a model deva ser agnóstica de conexão, assim ela pode ser inclusive reaproveitada em transações diferentes.
A model deve ter a regra de negócio, não o vínculo com o banco de dados.
A controller pode usar uma model com um banco de dados, um service com outro, a crontab também.

Além disso, fica mais claro abrir a transação juntamente ao bloco try/catch.
Não coloquem try/catch na model, pois não é responsabilidade dela emitir mensagens ao usuário ;-)

Atenciosamente,