Re bonjour,

j'ai suivi les tutos pour créer son site en MVC j'ai plusieurs questions qui me perturbent.. Si quelqu'un peut m'aider ça serait génial.

  • Dans les models si par exemple j'ai un model User je dois déclarer les attributs en haut + créer fonction User et également fonction User($id)?
  • dans les tutos je ne vois jamais de ligne type $post= new Post() c'est normal ?
  • Enfin si je vaux faire connexion pour user je peux créer une fonction login dans le model User ou ce n'est pas la meilleure solution ?

Merci

3 réponses


Benjamin Derepas
Réponse acceptée

Bonjour ,

Je n'ai jamais mis en pratique le tutoriel sur le MVC, utilisant en règle général le framework Codeigniter.
Toutefois, je vais essayer de répondre à tes questions :

Dans la logique du MVC, les models sont là pour interagir avec la base de données. Chaque model correspondant à une table. Ainsi , ton model user serait semblable à ça :

<?php
class User extends Model
{
 private $table_name = "user";
 function getAll(){}
 function addUser($data){}
 function getUser($id){}
}

Le fait de ne pas avoir de "new", autrement dit, pas d'instances de class à chaque fois, proviens surement du fait que se sont des class/ method statiques, qui ne requièrent pas cette étape .

Pour un système d'authentification, tu dois gérer tout sa entre ton controller et ton model ...
Le controller récupère les données du formulaire, les traites, les envois au model, le model cherche une correspondance, puis retourne un resultat au controller qui s'occupe de créer ou non la session ...

Quelqu'un svp ?

Le "new" est généré dynamiquement quand tu appel un modele dans un controller,
ex: $this->loadModel('Post');
Par exemple, la méthode loadModel que j'ai créer dans la class qui extend de mon controller vas inclure un modele 'Post' et vas créer un nouvelle objet (le fameux new), loadModel n'est pas static mais protected.