DUVIDA CONTROLLER, BO/BLL E DESIGN PATTERNS

MESTRE 18/10/2017 10:06:51
#477215
Fala galera beleza? to fazendo um projeto em PHP 7 e estou usando o padrão MVC, porém estou tendo algumas duvidas referentes a Controller e a Business Object..

Meu projeto está organizado da seguinte forma:
/Model
--/Entidades
--/DAO
--/Validacao
--/BO ou BLL (Business Logic Layer)
/Views
/Controllers

Estou começando a organizar a BO ou BLL agora, porém estou com duvida, atualmente minha Controller está acessando minha DAO, implementando a BO
ou BLL minha Controller deixará de acessar a DAO diretamente e quem vai acessar a DAO vai ser a BO/BLL que ficariam as regras de negocio ...

a dúvida:
1. Se a minha Controller continuar acessando minha DAO diretamente acabo ferindo algo no MVC ?
2. Minha controller simplesmente será utilizada apenas para renderizar as views se implementar a BO/BLL ?
KERPLUNK 18/10/2017 10:42:53
#477219
Resposta escolhida
Se você está usando uma BLL, significa que você terá regras de negócios que serão validadas/executadas nessa camada. Usar a DAO dirtamente, não fere necessariamente os princípios MVC, desde que quem acesse a DAO seja a controller. Quanto à segunda pergunta, não sei se entendi. A controller não [Ô]renderiza[Ô] nada.
MESTRE 18/10/2017 13:46:15
#477221
Citação:

:
Se você está usando uma BLL, significa que você terá regras de negócios que serão validadas/executadas nessa camada. Usar a DAO dirtamente, não fere necessariamente os princípios MVC, desde que quem acesse a DAO seja a controller. Quanto à segunda pergunta, não sei se entendi. A controller não [Ô]renderiza[Ô] nada.



Opa eai Kerp, entendi porque perguntando a mesma coisa para um professor ele me falou que se eu mantiver regras de negocio no Controller isso fere o padrão MVC e não é muito correto..

Sobre a segunda pergunta minha Controller vai virar basicamente um redirect pra view, falei equivocadamente renderizar mas o correto é [Ô]apontar[Ô] pra view , hoje meu controller acessa
a DAO e minhas Entidades, se eu colocar o BLL quem vai acessar a DAO e as Entidades vai ser o BLL e não a Controller correto?
KERPLUNK 18/10/2017 14:26:41
#477223
Seu professor tem razão. Se você tem uma camada BLL, você deveria usar essa camada para as validações de negócio, caso existam.
é isso mesmo. Se você usa a BLL em alguma entidade, basicamente fica [Ô]obrigatório[Ô] que as demais entidades também usem sua própria BLL, mesmo que o que ela faça seja simplesmente um passo à mais para acessar a DAO. Por questão de praticidade, muita gente meio que ignora isso quando não há regras de negócio, mas não é uma boa prática, porque você perde a uniformidade.
MESTRE 19/10/2017 08:38:07
#477237
Citação:

:
Seu professor tem razão. Se você tem uma camada BLL, você deveria usar essa camada para as validações de negócio, caso existam.
é isso mesmo. Se você usa a BLL em alguma entidade, basicamente fica [Ô]obrigatório[Ô] que as demais entidades também usem sua própria BLL, mesmo que o que ela faça seja simplesmente um passo à mais para acessar a DAO. Por questão de praticidade, muita gente meio que ignora isso quando não há regras de negócio, mas não é uma boa prática, porque você perde a uniformidade.


Show kerp..

Agradeço por tirar minhas duvidas..

Abraço!
Tópico encerrado , respostas não são mais permitidas