Conceito de MVC e sua funcionalidade usando o PHP

Veja neste artigo como implementar os conceitos e funcionalidades MVC e uma aplicação PHP de maneira simples e pratica.

Nesse Artigo irei exemplificar o conceito de MVC e sua funcionalidade usando o PHP.

A nossa estrutura de pastas fica da seguinte forma:


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.
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados