Projet de soutien: MVC à trous
Étape 1 : repository Git et base de données
Étape 1.1 : le repository
Sur votre compte GitHub créez un nouveau repository que vous appelerez bre04-soutien-mvc-books.
Clonez ce repository sur votre IDE.
Étape 1.2 : la base de données
Dans votre PHPMyAdmin créez une base de données que vous appelerez prenomnom_soutien_mvc_books.
Étape 1.3 : la table books
Dans cette base de données vous allez créer une table books qui a 4 colonnes :
id (int autoincrémenté et votre clé primaire)
title (varchar 255)
author (varchar 127)
description (varchar 255)
Étape 1.4 : remplir la table
Vous allez ensuite insérer à la main depuis PHPMyAdmin les livres suivants dans votre table
1984 – George Orwell Un homme lutte contre un régime totalitaire oppressant, où la surveillance, la pensée unique et la répression dominent toute la société.
Hunger Games – Suzanne Collins Katniss participe à un jeu mortel organisé par un gouvernement autoritaire, défiant l’ordre établi pour survivre et protéger les siens.
Notre-Dame de Paris – Victor Hugo Quasimodo, son amour pour Esmeralda, et le destin tragique de personnages prisonniers des conventions sociales et religieuses du Moyen Âge.
Étape 2 : les fichiers du projet
Récupérez les fichiers du projet :
Dézippez-les et placez les dossiers et fichiers dans le dossier de votre projet sur votre IDE.
Parcourez les fichiers, la structure devrait vous être familière 😊
Étape 3 : remplir le modèle
Dans le dossier models vous trouverez un fichier Book.php qui contient une classe Book qui pour le moment est vide.
Vous allez devoir remplir ce fichier pour faire correspondre votre class Book à la table books que vous avez créée dans la base de données.
N'oubliez pas que l'id doit pouvoir être null et qu'il est null par défaut.
Étape 4 : remplir la méthode findAll du Manager
Dans le dossier managers vous allez commencer par mettre les bonnes informations de connexion à votre base de données dans le fichier AbstractManager.php.
Ensuite, dans le fichier BookManager.php, vous allez compléter la méthode findAll de la classe BookManager. Cette méthode doit vous retourner un tableau d'instances de la classe Book qui contient tous les livres présents dans la base de données.
Étape 5 : remplir la méthode list du controller
Dans le dossier controllers vous trouverez un fichier BookController.php qui contient une classe BookController.
Vous allez devoir compléter la méthode list du BookController. Elle va devoir appeler le BookManager et l'utiliser pour récupérer un tableau de tous les livres présents dans la base de données.
Étape 6 : dynamiser la liste des livres
Dans le dossier templates/books vous trouverez un fichier list-book.phtml qui contient du code en dur qui affiche une liste de livres, Vous allez devoir dynamiser ce code de façon à ce qu'il utilise le tableau récupéré dans le controller pour afficher la liste des livres présents dans la base de données.
Étape 7 : remplir la méthode create du Manager
Dans le fichier managers/BookManager.php vous allez compléter la méthode create de la classe BookManager. Cette méthode reçoit une instance de la classe Book et doit la sauvegarder dans la base de données. Elle doit retourner cette instance de classe avec l'id qui lui a été attribué par la base de données.
Étape 8 : remplir la méthode checkCreate du controller
Dans le fichier controllers/BookController.php vous allez devoir compléter la méthode checkCreate de la classe BookController.
Cette méthode va devoir récupérer les données en voyer par le formulaire pour instancier une classe Book. Elle devra transmettre cette instance de classe à la méthode create du BookManager.
Elle redirige ensuite vers la page de liste des livres (la redirection est déjà faite pour vous).