Skip to main content

Command Palette

Search for a command to run...

O que é MVC? —  Conceitos Básicos

Updated
5 min read
O que é MVC? —  Conceitos Básicos

MVC é um padrão de arquitetura de software que separa a aplicação em três partes: Model, View e Controller.

Hoje em dia, o MVC é um dos padrões mais utilizados para o desenvolvimento de aplicações web em diversas linguagens de programação, incluindo o PHP.

Agora vamos entender melhor cada uma das partes do MVC.

Model

O Model é a parte da aplicação que representa a camada de dados, ou seja, a representação dos dados que são manipulados pela aplicação.

É literalmente um modelo da aplicação, que pode ser representado por uma classe, por exemplo.

Seguindo o exemplo de um sistema de cadastro de clientes, o Model seria a representação dos dados do cliente, como nome, e-mail, telefone etc.

Segue o exemplo de um Model de cliente em Laravel:

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Cliente extends Model
{
use HasFactory;
protected $fillable = [
'nome',
'email',
'telefone',
];
}

Dentro do Model, podemos definir regras de negócio, como funções para validar os dados, por exemplo.

public function adicionar($dados) {
return $this->create($dados);
}

public function atualizar($dados) {
return $this->update($dados);
}

public function excluir() {
return $this->delete();
}

public function buscar($id) {
return $this->find($id);
}

public function listar() {
return $this->all();
}

Lembre-se que esse código é apenas um exemplo didático, e que você pode implementar as regras de negócio da forma que achar melhor.

Controller

Pronto, já temos nosso modelo!

Como usamos ele agora? Com o Controller.

O Controller é literalmente o controlador da aplicação, que recebe as requisições do usuário e as manipula, retornando uma resposta.

No nosso exemplo, o Controller seria responsável por receber as requisições do usuário, como por exemplo: salvar um novo cliente, e manipular os dados, como por exemplo, salvar o cliente no banco de dados.

Segue o exemplo de um Controller de cliente em Laravel:

[...]
class ClienteController extends Controller
{
public function adicionar(Request $request) {
$cliente = new Cliente();
$cliente->adicionar($request->all());
return response()->json(['mensagem' => 'Cliente adicionado com sucesso!']);
}

public function atualizar(Request $request, $id) {
$cliente = Cliente::find($id);
$cliente->atualizar($request->all());
return response()->json(['mensagem' => 'Cliente atualizado com sucesso!']);
}

public function excluir($id) {
$cliente = Cliente::find($id);
$cliente->excluir();
return response()->json(['mensagem' => 'Cliente excluído com sucesso!']);
}

public function buscar($id) {
$cliente = Cliente::find($id);
return response()->json($cliente);
}

public function listar() {
$clientes = Cliente::listar();
return response()->json($clientes);
}
}

O Controller conhece o Model e pode manipular os dados através dele, mas também conhece a View e pode retornar uma resposta para o usuário através dela.

Dessa forma, o Controller é o intermediário entre o Model e a View.

View

A View é a parte da aplicação que representa a camada de apresentação, ou seja, a representação da interface gráfica da aplicação.

É literalmente a interface gráfica da aplicação, que pode ser representada por um arquivo HTML, por exemplo.

Seguindo o exemplo de um sistema de cadastro de clientes, a View seria a representação da interface gráfica do sistema como formulários, botões, tabelas etc.

Segue o exemplo de uma View de cliente em Laravel utilizando o Blade:

<!DOCTYPE html>




Clientes

3 views

More from this blog

L

Luiz Schons

28 posts

O que é MVC? —  Conceitos Básicos