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.501 ]
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'; } } } ?>
Xoops - Um ótimo gestor de portais em PHP
Apache, PHP, MariaDB e PhpMyAdmin no Fedora 27
Tratamento de exceções do PHP: uma introdução para iniciantes
Criar entrada (menuentry) ISO no Grub
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar o VIM 9.1 no Debian 12
Como saber o range de um IP público?
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Slackpkg+ (Slackpkg Plus) está de volta!
Como dividir duas janelas igualmente e lado-a-lado na sua tela
Como redefinir o diretório Home? (5)
Problemas com adaptadores wifi no Zorin (1)
Ocomon 6.0.1 - Problemas ao editar configurações estendidas (7)