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 :
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 duModelfindOne(int $id)qui récupère une ligne de la table et la retourne dans une instance duModelcreate(Model $model)qui créée leModelreçu en paramètres dans la base de donnéesupdate(Model $model)qui sauvegarde leModelreçu en paramètres dans la base de donnéesdelete(Model $model)qui supprime leModelreç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.