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.
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.
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.
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.
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.