MVC

O que é?

MVC é uma arquitetura de projeto muito utilizada por alguns frameworks hoje em dia, incluindo frameworks mais populares como Laravel.
MVC consiste em 3 pilares: Model, View, Controller. Vamos falar sobre cada um deles e suas responsabilidades dentro de um Projeto Harpia.

Model

O Model ou Modelo é responsável por trabalhar juntamente ao Banco de Dados, ou seja: tudo que estiver relacionado ao Banco de Dados, seja um INSERT, UPDATE, DELETE, SELECT ou qualquer outra funcionalidade que vá trabalhar diretamente com o Banco de Dados deve ser implementada nos Models da sua aplicação.

É claro que você poderá fazer queries em qualquer lugar da aplicação, como veremos mais à frente, mas o recomendado é utilizar apenas o Model para isso, de forma que seu código fique mais organizado, legível e mais fácil para fazer manutenções futuras.

View

A View é responsável por exibir conteúdo HTML ao cliente, podemos dizer que as views são o front-end da sua aplicação.

Você pode passar dados para a View e exibi-los nela. Por exemplo, passar a lista de usuários cadastrados.

Controller

O Controller ou Controlador é responsável por fazer uma comunicação entre o model e a view. É nele que você colocará que vai usar o Model do usuário por exemplo, e é com ele que você pode passar a lista de usuários cadastrados para a View, deixando a view apenas para exibir estes dados.

Por que usar MVC?

Um grande problema de sistemas legados é o fato de um arquivo .php conter não uma, não duas, mas geralmente 5 linguagens diferentes no mesmo arquivo: HTML, CSS, JavaScript, PHP e SQL.

Isso dificulta (e muito!) a manutenção do sistema, o código fica ilegível e uma desorganização total. É para isso que usamos o MVC: separar responsabilidades.

Próximo