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: 32.118 ]
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
Como ter o ChatGPT no seu site em PHP
Verdades e mentiras sobre tecnologias WEB
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Instalar Linux em notebook Sony Vaio VPCEG13EB (13)
Vou destruir sua infância:) (7)
Interface gráfica com problema (0)









