O que é o padrão MVC? Explicado de forma simples!

Se você está começando a desenvolver aplicativos web ou desktop, provavelmente já ouviu falar do padrão MVC. De fato, o MVC é um dos padrões mais comuns e amplamente utilizados no desenvolvimento de software, principalmente porque ajuda a organizar o código de forma mais limpa e separada, o que facilita a manutenção e evolução do projeto.

Por isso, hoje, vou explicar o que é o padrão MVC e mostrar um exemplo básico para que você possa entender melhor como ele funciona na prática.

O que é o Padrão MVC?

O MVC é um acrônimo para Model-View-Controller, que em português se traduz como Modelo-Visão-Controlador. Esse padrão oferece uma maneira eficiente de estruturar o código de uma aplicação, organizando-o em três camadas principais:

Model (Modelo): Ele gerencia os dados e a lógica de negócio. Além disso, lida diretamente com a interação com o banco de dados, as validações e as regras de negócio da aplicação.

View (Visão): Esta camada é responsável pela interface gráfica e pela apresentação dos dados ao usuário. Ou seja, é aquilo com que o usuário interage diretamente, seja uma página HTML, um template, ou qualquer outro tipo de interface visual.

Controller (Controlador): O controlador desempenha o papel de intermediário entre o Modelo e a Visão. Ele processa as requisições do usuário, conecta o que o usuário deseja com o que precisa ser manipulado no Modelo e, em seguida, escolhe qual Visão será exibida ao usuário, mantendo o fluxo contínuo da aplicação.

    Como funciona na prática?

    Vamos imaginar um cenário simples: um sistema de cadastro de usuários.

    Primeiramente, o usuário acessa o sistema e então deseja ver uma lista de usuários cadastrados.

    Em seguida, o Controller recebe essa solicitação e imediatamente chama o Model para buscar os dados no banco de dados.

    Logo após, o Model retorna os dados e o Controller rapidamente passa essa informação para a View.

    A View por fim exibe a lista de usuários em um formato amigável.

    Esse processo garante que cada camada do sistema mantenha sua responsabilidade bem definida, o que torna o código mais organizado e fácil de manter.

    Diagrama básico MVC
    Exemplo básico de MVC em PHP

    Aqui está um exemplo simples para mostrar como o padrão MVC pode ser implementado em PHP:

    1. Model: Gerencia os dados e a lógica do sistema.

    // Model: UserModel.php
    
    class UserModel {
        public function getUsers(): array
        {
            // Simulação de dados que poderiam vir de um banco de dados
            return [
                ['id' => 1, 'name' => 'João', 'email' => 'joao@example.com'],
                ['id' => 2, 'name' => 'Maria', 'email' => 'maria@example.com'],
                ['id' => 3, 'name' => 'Pedro', 'email' => 'pedro@example.com']
            ];
        }
    }
    

    2. Controller: Recebe as solicitações e faz a ponte entre o modelo e a visão.

    // Controller: UserController.php
    
    class UserController {
        private UserModel $userModel;
    
        public function __construct() 
       {
            $this->userModel = new UserModel(); // Instanciando o modelo
        }
    
        public function listUsers(): void
        {
            $users = $this->userModel->getUsers(); // Pegando os dados do modelo
            include 'UserView.php'; // Chamando a visão para exibir os dados
        }
    }
    

    3. View: Apresenta os dados ao usuário.

    <!-- View: UserView.php -->
    
    <!DOCTYPE html>
    <html>
    <head>
        <title>Lista de Usuários</title>
    </head>
    <body>
        <h1>Usuários Cadastrados</h1>
        <ul>
            <?php foreach ($users as $user): ?>
                <li><?php echo $user['name']; ?> - <?php echo $user['email']; ?></li>
            <?php endforeach; ?>
        </ul>
    </body>
    </html>
    

    4. Roteamento: Chamando o controlador.

    Para que o usuário acesse a lista de usuários, você precisa definir uma rota que chame o controlador:

    // index.php
    
    include 'UserModel.php';
    include 'UserController.php';
    
    $controller = new UserController();
    $controller->listUsers();
    

    Conclusão

    Primeiramente, o padrão MVC ajuda a estruturar suas aplicações, separando de forma clara as responsabilidades entre o Modelo (dados e lógica), a Visão (interface com o usuário) e o Controlador (intermediário entre os dois). Como resultado, isso facilita a manutenção do código, tornando-o mais organizado e escalável.

    Agora que você entendeu o conceito e viu um exemplo básico, você já pode começar a aplicar o MVC em seus projetos, seja em PHP ou em outras linguagens que suportam esse padrão.

    Por fim, se tiver dúvidas ou sugestões, deixe um comentário!

    Deixe um comentário

    O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

    Rolar para cima