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: 31.479 ]
Por: Anderson Irias Hermogenes em 06/10/2016 | Blog: https://irias.com.br
<?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
Tratamento de exceções do PHP: uma introdução para iniciantes
Sistema de Gerenciamento de Conteúdo
PHP Orientado a Objetos: Para quem está começando
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Instalar debian testing (13) "por cima" do debian 12 (0)
firefox nao guarda meus logins nos sites (0)
Erro de segmentação «Segmentation fault (core dumped)» ao retornar obj... (1)