I'm starting with programming and I'm doing a CRUD with MVC and DAO. I would like to know if the form I'm doing is correct, what could be improved and how do I call the method of inserting the ProductController in the form.
<?php
class Database {
private $host = "localhost";
private $username = "root";
private $password = "123456";
private $database = "crud";
public function conecta()
{
$conexao = new mysqli($this->host, $this->username, $this->password, $this->database);
return $conexao;
}
}
<?php
class Produto {
private $id;
private $nome;
private $descricao;
private $preco;
public function getId() {
return $this->id;
}
public function setId($id) {
$this->id = $id;
}
public function getNome() {
return $this->nome;
}
public function setNome($nome) {
$this->nome = $nome;
}
public function getDescricao() {
return $this->descricao;
}
public function setDescricao($descricao) {
$this->descricao = $descricao;
}
public function getPreco() {
return $this->preco;
}
public function setPreco($preco) {
$this->preco = $preco;
}
}
<?php
class ProdutoDAO {
function adiciona(Database $conexao, Produto $produto) {
$query = "INSERT INTO produtos (nome, descricao, preco) VALUES ('{$produto->getNome()}', '{$produto->getDescricao()}', '{$produto->getPreco()}')";
mysqli_query($conexao->conecta(), $query);
}
}
<?php
require_once ('../models/Produto.php');
require_once ('../models/ProdutoDAO.php');
require_once ('../config/Database.php');
class ProdutoController {
public function insere() {
$nome = $_POST['nome'];
$descricao = $_POST['descricao'];
$preco = $_POST['preco'];
$conexao = new Database();
$produto = new Produto();
$produto->setNome($nome);
$produto->setPreco($preco);
$produto->setDescricao($descricao);
$produtoDao = new ProdutoDao();
$produtoDao->adiciona($conexao, $produto);
}
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="../../public/css/bootstrap.min.css" rel="stylesheet">
<title>Adiciona Produto</title>
</head>
<body>
<div class="container">
<h3>Adicionar Produto</h3>
<form method="post" action="../../controllers/ProdutoController.php">
<div class="form-group">
<label>Nome</label>
<input type="text" class="form-control" name="nome">
</div>
<div class="form-group">
<label>Descrição</label>
<input type="text" class="form-control" name="descricao">
</div>
<div class="form-group">
<label>Preço</label>
<input type="text" class="form-control" name="preco">
</div>
<button type="submit" class="btn btn-primary">Adicionar</button>
</form>
</div>
</body>
</html>