Session BRE04 Help

Cours : MVC, Models et Managers

Les Models en MVC

Une classe Model est une classe qui représente une des tables de votre base de données. Chaque instance d'un Model correspond à une ligne de la table correspondante.

Exemple

Prenons l'exemple d'une classe qui représente un utilisateur :

class User { private ? int $id = null; public function __construct(private string $email, private string $password){} public function getId() : ? int { return $this->id; } public function setId(int $id) : void { $this->id = $id; } public function getEmail() : string { return $this->email; } public function setEmail(string $email) : void { $this->email = $email; } //... }

Les Managers

Un Manager est une classe qui va faire l'interface entre l'un de vos Model et la base de données. On considère généralement qu'il y a un Manager par Model. Certains frameworks (dont Symfony) appellent les managers des Repository.

Par défaut un managers doit permettre d'effectuer 5 actions et donc contenir 5 méthodes :

  • findAll() qui récupère toute les données de la table et les retournent dans un tableau d'instances du Model

  • findOne(int $id) qui récupère une ligne de la table et la retourne dans une instance du Model

  • create(Model $model) qui créée le Model reçu en paramètres dans la base de données

  • update(Model $model) qui sauvegarde le Model reçu en paramètres dans la base de données

  • delete(Model $model) qui supprime le Model reçu en paramètres

Elle peut en contenir d'autres, si vous avez des requêtes que vous avez systématiquement besoin d'effectuer, par exemple trouver tous les Models selon un critère autre que l'id.

Les Services

Un Service est une classe qui remplit une fonction précise et peut avoir besoin d'être appelée par plusieurs Controllers différents.

Par exemple : une classe qui se charge d'envoyer des mails, ou une classe qui se charge d'uploader des fichiers.

Exercice CRUD MVC


24 June 2025