MVC - Conceito e exemplo em PHP
Neste artigo faço uma pequena descrição sobre o padrão de arquitetura de software MVC. Nele descrevo brevemente o funcionamento das camadas MVC, exemplifico o funcionamento básico com PHP e cito algumas vantagens de se utilizar este padrão.
[ Hits: 30.723 ]
Por: Anderson Irias Hermogenes em 06/10/2016
<?php /* Realiza a inclusão dos arquivos com os códigos Model, View, Controller*/ include '/mvcexemplo/Controller/Controller.php'; include '/mvcexemplo/View/View.php'; include '/mvcexemplo/Model/Model.php'; /* Pega a ação passada pela URL*/ $acao = $_GET['acao']; /* Valida a ação passada, verifica se ela existe e se ela e o login * Se a ação for exisir e for login inicia a função login do Controller * Se não inicia a função login da View*/ if(isset($acao) && $acao == 'login'){ $controller = new Controller(); $controller->login(); }else{ $view = new View(); $view->login(); } ?>
<?php class View { public function login($validacao) { if(!isset($validacao)){ /* Exibe o formulário de login, onde será realizada a requisição pelo usuário */ echo ' <div> <h3>Login</h3> <form action="index.php?acao=login" method ="post"> Usuário: <input type="text" name="usuario"></br></br> Senha: <input type="password" name="senha"></br></br> <input class="botao" type="reset" value="Limpar"> <input class="botao" type="submit" name="submit" value="Logar"> </form> </div>'; }else{ /* Exibe o resultado da validação do login feita pela Model */ echo '<h3>'.$validacao.'</h3>'; } } } ?>
<?php include '/../Model/Model.php'; class Controller { public function login() { /* Pega o usuário e senha preenchidos no formulário de login da View */ $usuario = $_POST['usuario']; $senha = $_POST['senha']; /* Encaminha os dados a Model para que seja realizado a validação */ $model = new Model(); $validacao = $model->validaDados($usuario,$senha); /* Pega o resultado da validação realizada no Model e o encaminha para ser exibido pela View */ $view = new View(); $view->login($validacao); } } ?>
<?php class Model { public function validaDados($usuario,$senha) { /* Aplica a validação ao usuário e senha passados, utilizando as regras de négocio especificas para ele. */ if(strlen($usuario)<5){ return 'Digite o usuário corretamente'; }else if(strlen($senha)<8){ return 'A senha deve possuir mais de 8 caracteres'; }else{ return 'Login efetuado com sucesso'; } } } ?>
Implementando scripts PHP com MySQL
Ato 3 - Estrutura de Controle e Funções
Tratamento de exceções do PHP: uma introdução para iniciantes
Instalando Servidor LAMP no Ubuntu e Derivadas
Como escolher o melhor escalonador de CPU para melhorar o desempenho da máquina
Curiosidade sobre DOOM Guy e Isabelle de Animal Crossing
Inicializando servidor Ubuntu na AWS e rodando apache em Container
Instalando TeamViewer no Debian 12
Conheça o Octopi, outro frontend para o Pacman com acesso ao AUR (Arch Linux e derivados)
Terminal transparente no Debian 12 com interface i3wm usando Xfce4-Terminal e Compton
horário adiantado no sistema (10)
Apertei Crtl+alt+f4 e agora somente inicia na linha de comando (0)
Eu estou com problemas para usar o QBASIC no Dosbox X (3)
Tibia não pode ser aberto em virtual machine (14)
Após atualização do Ubuntu 22.04.4 LTS perdi a instalação da placa de ... (3)