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.094 ]
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';
}
}
}
?>
Instalando Servidor LAMP no Ubuntu e Derivadas
PHP5 - Criando e utilizando uma classe básica
Introdução a Orientação a Objetos no PHP4
Implementando scripts PHP com MySQL
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Instalando COSMIC no Linux Mint
Turbinando o Linux Mint: o poder das Nemo Actions
Inteligência Artificial no desenvolvimento de software: quando começar a usar?
[Resolvido] Algo deu errado ao abrir seu perfil
Usando o VNSTAT para medir o seu consumo de internet
Habilitando clipboard manager no ambiente COSMIC
Problema com som no laptop (5)
Quando vocês pararam de testar distros? (11)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (2)









