Nesse Artigo irei exemplificar o conceito de MVC e sua funcionalidade usando o PHP.
A nossa estrutura de pastas fica da seguinte forma:
- /(raiz)
- controller/
- model/
- – view/
- index.php
Entendendo o padrão MVC na prática
Primeiramente vamos começar implementado nosso modelo:
<?php
class Cliente {
private $id;
private $nome;
/**
* ...
* getters e setters
* ...
*
*/
public function save() {
// logica para salvar cliente no banco
}
public function update() {
// logica para atualizar cliente no banco
}
public function remove() {
// logica para remover cliente do banco
}
public function listAll() {
// logica para listar toodos os clientes do banco
}
/**
* ...
* outros métodos de abstração de banco
* ...
*
*/
}
?>
O modelo, como foi falado antes, é responsável pela abstração do banco de dados. Por isso, todos os métodos que acessarão o banco de dados para modificações ou retornos devem ser desenvolvidos no modelo.
Seguindo com a estrutura, vamos criar uma view com a listagem dos clientes:
<?php
$clientes = $_REQUEST['clientes'];
?>;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Implementando MVC</title>
</head>
<body>
<table>
<tr>
<th>ID</th>
<th>Cliente</th>
</tr>
<?php foreach ($clientes as $cliente): ?>
<tr>
<td><?php echo $cliente->getId(); ?></td>
<td><?php echo $cliente->getNome(); ?></td>
</tr>
<?php endforeach; ?>
</table>
</body>
</html>
A visão tem como papel receber os dados do controle e exibir para o usuário. Como podemos ver no código acima, a view está recebendo um request com um vetor de objetos cliente que são exibidos em tela com um foreach.
Ainda seguindo a estrutura, vamos ao controller:
<?php
require_once 'model/Cliente.php';
class ClienteController {
public function listar() {
$cliente = new Cliente();
$clientes = $cliente->listAll();
$_REQUEST['clientes'] = $clientes;
require_once 'view/cliente_view.php';
}
}
?>
No controle nos apenas chamamos nosso modelo, que é a classe responsável pela abstração. Ao recuperarmos os dados, mandamos para a nossa visão.
Para chamar tudo isso, no index.php usaremos o seguinte código:
<?php
$classe = $_GET['class'];
$metodo = $_GET['acao'];
$classe .= 'Controller';
require_once 'controller/'.$classe.'.php';
$obj = new $classe();
$obj->$metodo();
?>
Esta foi uma implementação simples da arquitetura de projeto MVC, foi apenas um incentivo para que todos possam implementar este padrão de projeto e deixar o código mais fácil e o desenvolvimento mais rápido. Vale à pena estudar estes padrões independentes da linguagem em que esteja desenvolvendo.
Assista ao vídeo abaixo:
Links Úteis
- Um bate-papo sobre o Delphi:
O Delphi está em constante evolução e com ele podemos criar aplicações desktop, servidores de aplicações, aplicativos móveis, entre outros. Neste DevCast temos um bate-papo sobre essa poderosa ferramenta de desenvolvimento. - Base de dados de cidades com código do IBGE:
Baixe agora uma base de dados de estados e cidades brasileiros no formato SQL para incorporar ao seu projeto. Veja também algumas consultas que podem ser feitas sobre esses dados.
Saiba mais sobre MVC e PHP ;)
- O que é MVC?:
Neste curso vamos entender o que é o padrão MVC (Model-VIew-Controller), qual sua proposta e aplicabilidade no desenvolvimento de aplicações. - Carreira Programador PHP:
Neste guia de estudos você encontra os conteúdos que precisará para se tornar um programador PHP completo. Confira a sequência de cursos e exemplos que te guiarão do básico ao avançado em PHP. - Linguagem PHP:
Neste Guia de Consulta você encontrará todo o conteúdo que precisa para aprender PHP, uma linguagem de programação amplamente utilizada para a construção de aplicações web.