Um projeto a qual unimos as tecnologias, os template engines e também o controle de versão
Quando falamos de desenvolvimento web moderno, especialmente no back-end, o padrão MVC (Model-View-Controller) é um dos mais adotados. Ele organiza a estrutura das aplicações de forma clara, melhorando a manutenção e escalabilidade do projeto. Vamos explorar como isso funciona e como frameworks e práticas de persistência em bancos de dados aceleram ainda mais o seu desenvolvimento!
Afinal, o que é o MVC mesmo?

O MVC é uma arquitetura, responsável pela ponte entre a visualização (Views, com os Template Engines), o cérebro das operações (Controllers) e, por fim, os Models (base de dados).
Caso ainda não tenha programado em Banco de Dados, mas começou a diagramação (pelo MER e DER), fica tranquilo: você já descobriu como criar visualmente a base de dados. E vamos aproveitar essa sua criação para um produto.
Controller
Controllers são a ponte entre a interface do usuário (views) e a lógica de negócios (models). Eles recebem as requisições do cliente, processam essas informações (geralmente conversando com os Models) e determinam qual View deve ser exibida.
Por exemplo, pra que eu crie um Tipo de Produto eu devo ter um formulário com um input simples. Esse formulário será conectado através da função criar, que terá como parâmetro os dados do meu formulário (id e o nome deste tipo).
Model
O Model é o responsável pela lógica dos dados: acesso, validação, manipulação e atualização. Ele representa as entidades da aplicação — por exemplo, um usuário, um produto, uma postagem no blog.
E o que é uma entidade? Simples, é a nossa tabela! Uma tabela de usuário, uma tabela de produto ou uma tabela de posts. Elas são as nossas entidades, ai dentro delas, temos os atributos (variáveis e seus tipos) que podem ser também ligações à outras entidades.
Funções de um Model:
- Validar as informações preenchidas no formulário.
- Consultar ou modificar dados em bancos – sem a necessidade do programador do banco fazer as operações CRUD, o sistema fará.
- Definir regras de negócio – ou seja, os requisitos para o nosso sistema.
View
Views são os arquivos responsáveis por renderizar a interface que o usuário vê.
Normalmente, não contêm muita lógica — apenas exibem os dados que queremos exibir (dentro das regras de negócio).
Exemplo de uma view com uma lista de produtos, utilizando o Twig:
{% extends "layout/base.twig" %}
{% block content %}
<h1>Nosso Acervo</h1>
<table>
<tr>
<th>Título</th>
<th>Autor</th>
<th>Tipo</th>
<th>Preço</th>
<th>Ações</th>
</tr>
{% for produto in produtos %}
<tr>
<td>{{ produto.titulo }}</td>
<td>{{ produto.autor }}</td>
<td>{{ produto.tipo_nome }}</td>
<td>R$ {{ produto.preco|number_format(2, ',', '.') }}</td>
<td>
<a href="{{ path('editar', {id: produto.id}) }}">Editar</a>
<a href="{{ path('excluir', {id: produto.id}) }}">Excluir</a>
</td>
</tr>
{% endfor %}
</table>
{% endblock %}




Você precisa fazer login para comentar.