Voici une application PHP non structurée en MVC de gestion d'une bibliothèque. Cette application permet :
Votre mission est de :
Le fichier fourni bibliotheque.php contient tout le code (HTML, PHP et SQL).
Note: Le fichier bibliotheque.php est à enregistrer dans le dossier local de votre serveur LAMP (à installer selon le modèle de l'an dernier en transposant sous votre système Windows), dans un dossier D3-A01BibliMVC - Ce dossier devra être synchronisé avec un dépôt du même nom dans votre gitea.
<?php $ip = 'localhost'; $user = 'adminBibli'; $pass = 'mdpBibli'; $database = 'bdbibliotheque'; // Définition de la source des données pour PDO $dsn = "mysql:host=$ip;dbname=$database;charset=utf8mb4"; // Création de l'objet $dbh, de type PDO, qui est la ressource d'accès à la base try { $db = new PDO($dsn, $user, $pass); } catch (PDOException $e) { die("Erreur de connexion : ".$e->getMessage()); } // Ajout d’un livre if (!empty($_POST['titre']) && !empty($_POST['auteur']) && !empty($_POST['annee'])) { $stmt = $db->prepare("INSERT INTO livres (titre, auteur, annee) VALUES (?, ?, ?)"); $stmt->execute([$_POST['titre'], $_POST['auteur'], $_POST['annee']]); } // Récupération des livres $stmt = $db->query("SELECT * FROM livres"); $livres = $stmt->fetchAll(PDO::FETCH_ASSOC); ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <title>Bibliothèque</title> </head> <body> <h1>Gestion de la bibliothèque</h1> <form method="POST"> <label>Titre : <input type="text" name="titre"></label><br> <label>Auteur : <input type="text" name="auteur"></label><br> <label>Année : <input type="number" name="annee"></label><br> <button type="submit">Ajouter</button> </form> <h2>Liste des livres</h2> <ul> <?php foreach ($livres as $livre): ?> <li><?= $livre['titre'] ?> - <?= $livre['auteur'] ?> (<?= $livre['annee'] ?>)</li> <?php endforeach; ?> </ul> </body> </html>
Jalon0 : Tester la version initiale non organisée selon le modèle MVC
Réorganiser ce code en respectant le schéma MVC :
Jalon1 : Proposer une arborescence avec les fichiers et leur rôle précis
Coder et vérifier que l’application fonctionne toujours avec deux fonctionnalités de base :
Jalon2 : Validation du fonctionnement de l'application initiale en respectant le modèle MVC
Chaque étudiant implémente une évolution en respectant le MVC.
Chaque évolution doit impliquer :
Attention: L'application avec votre évolution sera le sujet de la revue de code de lundi, elle devra donc être terminée pour lundi 15/09 14h