MVC Completo - #20 Exemplo Completo
01/05/2018Hoje vamos fazer um exemplo completo do sistema MVC, utilizando o model, view e controller. Para isso, faremos um login simples (sem critérios de segurança, apenas para exemplo).
Criando login no MVC
Para criarmos um exemplo completo no MVC devemos seguir a ordem abaixo:
1 - Criar o link no layout
<a href="<?php echo DIRPAGE.'login'; ?>">Login</a>
2 - Criar a rota desse link na ClassRoutes
"login"=>"ControllerLogin",
3 - Criar o diretório do login dentro de app/view e criar o arquivo Main.php que conterá o formulário de login.
<form name="FormLogin" id="FormLogin" method="post" action="<?php echo DIRPAGE.'login/validarLogin' ?>">
<input type="text" name="Usuario" id="Usuario" placeholder="Usuário:"><br>
<input type="password" name="Senha" id="Senha" placeholder="Senha:"><br>
<input type="submit" value="Logar">
</form>
4 - Devemos criar nosso arquivo controller que renderizará o layout e chamará a validação do model.
namespace App\Controller;
use App\Model\ClassLogin;
use \Src\Classes\ClassRender;
class ControllerLogin extends ClassLogin{
use \Src\Traits\TraitUrlParser;
public function __construct()
{
if(count($this->parseUrl())==1){
$Render=new ClassRender();
$Render->setTitle('Login');
$Render->setDescription('Faça seu login');
$Render->setKeywords('login, login website, area restrita');
$Render->setDir('login');
$Render->renderLayout();
}
}
#Validar o login do usuário
public function validarLogin()
{
$Validacao=$this->validarUsuario($_POST['Usuario'],$_POST['Senha']);
if($Validacao==true){
echo "Login efetuado";
}else{
echo "Não foi feito o login";
}
}
}
5 - Criaremos em seguida o nosso model (ClassLogin.php) que fará o acesso direto ao banco de dados e retornará true ou false:
namespace App\Model;
class ClassLogin extends ClassConexao{
#Validar o Usuário no Banco
protected function validarUsuario($Usuario,$Senha)
{
$BFetch=$this->conexaoDB()->prepare("select * from login where Usuario=:usuario and Senha=:senha");
$BFetch->bindParam(":usuario",$Usuario,\PDO::PARAM_STR);
$BFetch->bindParam(":senha",$Senha,\PDO::PARAM_STR);
$BFetch->execute();
if($Row=$BFetch->rowCount()>0){
return true;
}else{
return false;
}
}
}
6 - Criaremos nossa tabela no MySql:
CREATE TABLE 'login' (
'Id' int(11) NOT NULL,
'Usuario' varchar(30) NOT NULL,
'Senha' varchar(30) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
ALTER TABLE 'login' ADD PRIMARY KEY ('Id');
ALTER TABLE 'login' MODIFY 'Id' int(11) NOT NULL AUTO_INCREMENT;
INSERT INTO 'login' ('Id', 'Usuario', 'Senha') VALUES (1, 'webdesign', '123');
Seguindo os passos acima criamos uma página completa no sistema MVC.