Organisation de fichiers PHP - MVC
Bonjour,
Etant confronté à un site prenant une ampleur assez considérable, je migre celui-ci en MVC.
Cependant, j'ai quelque soucis à comprendre la différence entre le contrôleur et le modèle
Voici un exemple concret où je désirerais que l'on m'explique comment départager mon code entre un contrôleur et un modèle.
P.S : Je ne pose que le minimum.
1) je crée un classe de connexion avec des requêtes de bases
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
<?php
define('DB_HOST','localhost');
define('DB_USER','****');
define('DB_PASS','***');
define('DB_NAME','****');
class DbConnect{
private $host = DB_HOST;
private $user = DB_USER;
private $pass = DB_PASS;
private $dbname = DB_NAME;
private $stmt;
public $db;
public function __construct(){
$dsn = 'mysql:host='.$this->host.';dbname='.$this->dbname;
$options = array(
PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING
);
// Create a new PDO instanace
try{
$this->db = new PDO($dsn, $this->user, $this->pass, $options);
}
// Catch any errors
catch(PDOException $e){
die($e->getMessage());
}
}
public function query($query){
$this->stmt = $this->db->prepare($query);
}
public function execute(){
return $this->stmt->execute();
}
public function resultset(){
$this->execute();
return $this->stmt->fetchAll(PDO::FETCH_OBJ);
}
public function single(){
$this->execute();
return $this->stmt->fetch(PDO::FETCH_OBJ);
}
}
?> |
2) Mon login en entrée de la page d'accueil si pas de session ouverte:
(C'est là ou j'ai du mal à différencier model et controller)
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
$DB = new DbConnect();
$error = '';
if(!empty($_POST)){
$DB->query('SELECT * FROM users WHERE u_login="admin"');
$row = $DB->single();
echo "<pre>";
print_r($row);
echo "</pre>";
}else{
$error .= ' Veuillez entrer vos identifiants';
} |
Et ma partie view du mvc que je comprends.
Code:
1 2 3 4 5 6
|
<form action="login" name="login" method="post">
<input type="text" name="login">
<input type="password" name="pswd">
<input type="submit" value="Connexion">
</form> |
Merci d'avance,
David