diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml
index c5a247dd68a051c09761c764cebdd70e7e2381b9..63772a38dd7db38163dcbc79f16b90062e3e51d0 100644
--- a/.idea/sqldialects.xml
+++ b/.idea/sqldialects.xml
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="SqlDialectMappings">
-    <file url="file://$PROJECT_DIR$/TP2/ex4/conn.php" dialect="GenericSQL" />
     <file url="PROJECT" dialect="MariaDB" />
   </component>
 </project>
\ No newline at end of file
diff --git a/README.md b/README.md
deleted file mode 100644
index 4e958d2e3bae1e38d16f613ecbbb53e022e55ac8..0000000000000000000000000000000000000000
--- a/README.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# TP-PHP-LPPRISM
-
-
-
-## Information pour M.Gagné
-Je suis désolé, mais j'ai vraiment du mal avec votre façon de faire. Les pratiques réalisées sur le TP5 ne sont pas
-bonnes pour plusieurs raisons.
-
-**Premièrement**, même si je comprends bien que créer plusieurs contrôleurs est rébarbatif, et qu'il peut être intéressant
-de toute centralisé comme nous l'avions fait avec les vues, ici ce n'est pas une bonne idée. Le problème étant que les
-tables gérées par les modèles n'ont pas les mêmes noms de méthodes, ni de propriétés, il serait difficile de créer un
-contrôleur unique pour chaque modèle sans devoir implémenter du code spécifique.
-
-Bien sûr, nous pourrions toujours les renommer en un nom plus général, me diriez-vous. Ainsi on règlerait le problème des noms de méthodes
-comme `getAllAuteurs()`. Cela est d'ailleurs compatible avec les pages individuelles. Mais cela ne corrigera pas le problème du nom des propriétés.
-
-En effet, si pour un livre nous allons utiliser son année de parution dans sa description, pour un auteur nous allons plutôt
-utiliser son année de naissance. Même en supprimant les descriptions superflues que j'ai ajouté aux liens, il reste la
-question de pouvoir récupérer l'identifiant unique de chaque objet. Encore une fois, les noms sont différents.
-
-Nous pourrions encore et toujours trouver une solution, mais cela ne fera que contourner le problème qui est que
-centraliser tous les contrôleurs de ces contrôleurs, en sachant que nous n'avons qu'une seule vue, n'est pas une bonne
-idée.
-
-**Nous en venons au deuxième problème**. Avoir centralisé les vues est une très bonne idée. Cependant, cela signife que
-leur contenu doit être géré dans les contrôleurs. Cela ne devrait pas poser de problème, sauf si nous avons décidé de
-centraliser aussi. Pour palier à ce problème, il faudrait alors revoir la manières dont sont créés les modèles. Je
-suppose qu'il s'agit là du sujet des prochains TP.
- 
\ No newline at end of file
diff --git a/TP1/TP1_web.pdf b/TP1/TP1_web.pdf
deleted file mode 100644
index 1a9e73a1b2a21e338b1d10634d610d6901e8fee5..0000000000000000000000000000000000000000
Binary files a/TP1/TP1_web.pdf and /dev/null differ
diff --git a/TP1/ex1.php b/TP1/ex1.php
deleted file mode 100644
index 788fef0d4211e746a1348d46ca00da18869383f4..0000000000000000000000000000000000000000
--- a/TP1/ex1.php
+++ /dev/null
@@ -1,2 +0,0 @@
-<?php
-echo "Hello world!";
\ No newline at end of file
diff --git a/TP1/ex2.php b/TP1/ex2.php
deleted file mode 100644
index ad10e1139b387ded27ff1cee7027f2da2b52fec8..0000000000000000000000000000000000000000
--- a/TP1/ex2.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
-$today = date('H:i:s, d-m-Y');
-echo "Nous sommes le: " . $today;
\ No newline at end of file
diff --git a/TP1/ex3.php b/TP1/ex3.php
deleted file mode 100644
index da73702cb3e19def4094602277e399735e4c1d87..0000000000000000000000000000000000000000
--- a/TP1/ex3.php
+++ /dev/null
@@ -1,2 +0,0 @@
-<?php
-var_dump(getdate());
\ No newline at end of file
diff --git a/TP1/ex4.php b/TP1/ex4.php
deleted file mode 100644
index 2fb0b1871d1029aca3cc6f57d4a53d5925a04c92..0000000000000000000000000000000000000000
--- a/TP1/ex4.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html>
-<html lang="fr">
-  <head>
-    <meta charset="utf-8">
-    <title>TP1 - ex4</title>
-    <link rel="icon" type="image/png" href="iconPHP.png">
-  </head>
-  <body>
-    <h2>Palmarès de la ligue des champions</h2>
-    <?php
-    $palmares = array(
-      2022 => "Real Madrid",        2021 => "Chelsea",            2020 => "Bayern Munich",
-      2019 => "Liverpool",          2018 => "Real Madrid",        2017 => "Real Madrid",
-      2016 => "Real Madrid",        2015 => "Barcelone",          2014 => "Real Madrid",
-      2013 => "Bayern Munich",      2012 => "Chelsea",            2011 => "Barcelone",
-      2010 => "Inter Milan",        2009 => "Barcelone",          2008 => "Manchester United",
-      2007 => "AC Milan",           2006 => "Barcelone",          2005 => "Liverpool",
-      2004 => "Porto",              2003 => "AC Milan",           2002 => "Real Madrid",
-      2001 => "Bayern Munich",      2000 => "Real Madrid"
-    );
-      echo "<pre>";
-      print_r($palmares);
-      echo "</pre>";
-
-      $vainqueurs = array();
-      foreach ($palmares as $personne){
-          if(!isset($vainqueurs[$personne])){
-              $vainqueurs[$personne] = 1;
-          }else{
-              $vainqueurs[$personne]++;
-          }
-      }
-      ksort($vainqueurs);
-    echo "<h2>Vainqueurs triés</h2>";
-    echo "<pre>";
-    print_r($vainqueurs);
-    echo "</pre>";
-    ?>
-  </body>
-</html>
diff --git a/TP1/ex5a.php b/TP1/ex5a.php
deleted file mode 100644
index b877e29ba5e832b519e87e766b0867f5e02b0cbb..0000000000000000000000000000000000000000
--- a/TP1/ex5a.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-$capital = array(10000);
-for ($i=0; $i<10; $i++){
-    echo "<br>$i: " . $capital[$i];
-    $capital[$i+1] = floor($capital[$i] * 1.05);
-}
\ No newline at end of file
diff --git a/TP1/ex5b.php b/TP1/ex5b.php
deleted file mode 100644
index 073c1b36a405b891f33fd2c06b39ebecfa565434..0000000000000000000000000000000000000000
--- a/TP1/ex5b.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-$atteindre = 18000;
-$init = 10000;
-$taux = 1.05;
-
-$total = $init;
-$nbAnnees = 0;
-while($total < $atteindre){
-    $total *= $taux;
-    $nbAnnees++;
-}
-?>
-<h1>Dépassement d'un seuil donné</h1>
-<p>Seuil à atteindre : <?=$atteindre?> €</p>
-<p>Captial Intial : <?=$init?> €</p>
-<p>Taux d'intérêt : <?php echo ($taux - 1) * 100; ?> %</p>
-
-<p>Capital en début d'année <?=$nbAnnees?> : <?=$total?> €</p>
diff --git a/TP1/ex5c.php b/TP1/ex5c.php
deleted file mode 100644
index ddbf58aac3c845c1f0f9c0ca670d368bc0f4bb2a..0000000000000000000000000000000000000000
--- a/TP1/ex5c.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-if(isset($_GET['seuil'])){
-    $atteindre = $_GET['seuil'];
-}else{
-    $atteindre = 18000;
-}
-if(isset($_GET['capitalInitial'])){
-    $init = $_GET['capitalInitial'];
-}else{
-    $init = 10000;
-}
-if(isset($_GET['taux'])){
-    $taux = $_GET['taux']/100 + 1;
-}else{
-    $taux = 1.05;
-}
-
-$total = $init;
-$nbAnnees = 0;
-while($total < $atteindre){
-    $total *= $taux;
-    $nbAnnees++;
-}
-?>
-<h1>Dépassement d'un seuil donné</h1>
-<p>Seuil à atteindre : <?=$atteindre?> €</p>
-<p>Captial Intial : <?=$init?> €</p>
-<p>Taux d'intérêt : <?php echo ($taux - 1) * 100; ?> %</p>
-
-<p>Capital en début d'année <?=$nbAnnees?> : <?=$total?> €</p>
\ No newline at end of file
diff --git a/TP1/ex5d.php b/TP1/ex5d.php
deleted file mode 100644
index 12c0ac3201a7a139c6c4c743052d05484d1ce76e..0000000000000000000000000000000000000000
--- a/TP1/ex5d.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-if(isset($_GET['seuil'])){
-    $atteindre = $_GET['seuil'];
-}else{
-    $atteindre = 18000;
-}
-if(isset($_GET['capitalInitial'])){
-    $init = $_GET['capitalInitial'];
-}else{
-    $init = 10000;
-}
-if(isset($_GET['targetYears'])){
-    $targetYears = $_GET['targetYears'];
-}else{
-    $targetYears = 10;
-}
-
-$taux = ($atteindre - $init) / $targetYears;
-
-$total = $init;
-$nbAnnees = 0;
-while($total < $atteindre){
-    $total *= $taux;
-    $nbAnnees++;
-}
-?>
-<h1>Dépassement d'un seuil donné</h1>
-<p>Seuil à atteindre : <?=$atteindre?> €</p>
-<p>Captial Intial : <?=$init?> €</p>
-<p>Taux d'intérêt pour <?=$targetYears?> année(s) : <?php echo ($taux - 1) * 100; ?> %</p>
-
-<p>Capital en début d'année <?=$nbAnnees?> : <?=$total?> €</p>
\ No newline at end of file
diff --git a/TP1/ex6.php b/TP1/ex6.php
deleted file mode 100644
index ad8785a3824e4ef5564d7e0cd3a8897a6adb82c9..0000000000000000000000000000000000000000
--- a/TP1/ex6.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<h1>Affichage de $_GET</h1>
-<?php
-echo "<pre>"; print_r($_GET); echo "</pre>";
-?>
-
-<h1>Affichage des index de $_GET</h1>
-<?php
-echo "<pre>"; print_r(array_keys($_GET)); echo "</pre>";
-
-echo "<h1>Détection des clés prenom et nom</Affi></h1>";
-if(array_key_exists("prenom", $_GET)){
-    echo "Prénom: " . $_GET['prenom'];
-}
-if(array_key_exists("nom", $_GET)){
-    echo "<br>Nom: " . $_GET['nom'];
-}
-?>
diff --git a/TP2/TP2_web.pdf b/TP2/TP2_web.pdf
deleted file mode 100644
index 38c2fb460725723b4f79af0ef8a7fd9c50066d9e..0000000000000000000000000000000000000000
Binary files a/TP2/TP2_web.pdf and /dev/null differ
diff --git a/TP2/ex1/Auteur.php b/TP2/ex1/Auteur.php
deleted file mode 100644
index 1a982b2820b45ee1793731adb2ce885bb07629fe..0000000000000000000000000000000000000000
--- a/TP2/ex1/Auteur.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-
-class Auteur
-{
-    private int $numAuteur;
-    private string $nom;
-    private string $prenom;
-    private string $nationalite;
-    private int $anneeNaissance;
-
-    /**
-     * @param int $numAuteur
-     * @param string|null $nom
-     * @param string|null $prenom
-     * @param string|null $nationalite
-     * @param int|null $anneeNaissance
-     */
-    public function __construct(int $numAuteur, string $nom  = null, string $prenom  = null, string $nationalite  = null, int $anneeNaissance  = null)
-    {
-        $this->numAuteur = $numAuteur;
-        if($nom){
-            $this->nom = $nom;
-            $this->prenom = $prenom;
-            $this->nationalite = $nationalite;
-            $this->anneeNaissance = $anneeNaissance;
-        }
-    }
-
-    /**
-     * @return int
-     */
-    public function getNumAuteur(): int
-    {
-        return $this->numAuteur;
-    }
-
-    /**
-     * @param int $numAuteur
-     */
-    public function setNumAuteur(int $numAuteur): void
-    {
-        $this->numAuteur = $numAuteur;
-    }
-
-    /**
-     * @return string
-     */
-    public function getNom(): string
-    {
-        return $this->nom;
-    }
-
-    /**
-     * @param string $nom
-     */
-    public function setNom(string $nom): void
-    {
-        $this->nom = $nom;
-    }
-
-    /**
-     * @return string
-     */
-    public function getPrenom(): string
-    {
-        return $this->prenom;
-    }
-
-    /**
-     * @param string $prenom
-     */
-    public function setPrenom(string $prenom): void
-    {
-        $this->prenom = $prenom;
-    }
-
-    /**
-     * @return string
-     */
-    public function getNationalite(): string
-    {
-        return $this->nationalite;
-    }
-
-    /**
-     * @param string $nationalite
-     */
-    public function setNationalite(string $nationalite): void
-    {
-        $this->nationalite = $nationalite;
-    }
-
-    /**
-     * @return int
-     */
-    public function getAnneeNaissance(): int
-    {
-        return $this->anneeNaissance;
-    }
-
-    /**
-     * @param int $anneeNaissance
-     */
-    public function setAnneeNaissance(int $anneeNaissance): void
-    {
-        $this->anneeNaissance = $anneeNaissance;
-    }
-
-    /**
-     * @return void
-     */
-    public function afficher(): void
-    {
-        echo "<p>Nom: " . $this->nom . " Prénom: " . $this->prenom . "</p>";
-    }
-}
\ No newline at end of file
diff --git a/TP2/ex1/testAuteur.php b/TP2/ex1/testAuteur.php
deleted file mode 100644
index f157ec54cb50af83b8caa5ebe7d4d2a5bb878c16..0000000000000000000000000000000000000000
--- a/TP2/ex1/testAuteur.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-require "Auteur.php";
-
-$aut1 = new Auteur(1);
-$aut2 = new Auteur(2, "Clavier", "Christian", "France", 1969);
-
-$aut1->afficher();
-$aut2->afficher();
\ No newline at end of file
diff --git a/TP2/ex4/Auteur.php b/TP2/ex4/Auteur.php
deleted file mode 100644
index 6e13f1229e0c70bbef8839a937c9581bceccd042..0000000000000000000000000000000000000000
--- a/TP2/ex4/Auteur.php
+++ /dev/null
@@ -1,143 +0,0 @@
-<?php
-
-class Auteur
-{
-    private int $numAuteur;
-    private string $nom;
-    private string $prenom;
-    private string $nationalite;
-    private int $anneeNaissance;
-
-    /**
-     * @param int $numAuteur
-     * @param string|null $nom
-     * @param string|null $prenom
-     * @param string|null $nationalite
-     * @param int|null $anneeNaissance
-     */
-    public function __construct(int $numAuteur, string $nom  = null, string $prenom  = null, string $nationalite  = null, int $anneeNaissance  = null)
-    {
-        $this->numAuteur = $numAuteur;
-        if($nom){
-            $this->nom = $nom;
-            $this->prenom = $prenom;
-            $this->nationalite = $nationalite;
-            $this->anneeNaissance = $anneeNaissance;
-        }else{
-            $bdd = new Database;
-            $bdd->connect();
-            $bdd = $bdd->pdo();
-            $query = $bdd->prepare("SELECT * FROM auteur WHERE numAuteur = ?");
-            $query->execute([$numAuteur]);
-            $data = $query->fetch(PDO::FETCH_ASSOC);
-
-            $this->nom = $data['nom'];
-            $this->prenom = $data['prenom'];
-            $this->nationalite = $data['nationalite'];
-            $this->anneeNaissance = $data['anneeNaissance'];
-        }
-    }
-
-    /**
-     * @return int
-     */
-    public function getNumAuteur(): int
-    {
-        return $this->numAuteur;
-    }
-
-    /**
-     * @param int $numAuteur
-     */
-    public function setNumAuteur(int $numAuteur): void
-    {
-        $this->numAuteur = $numAuteur;
-    }
-
-    /**
-     * @return string
-     */
-    public function getNom(): string
-    {
-        return $this->nom;
-    }
-
-    /**
-     * @param string $nom
-     */
-    public function setNom(string $nom): void
-    {
-        $this->nom = $nom;
-    }
-
-    /**
-     * @return string
-     */
-    public function getPrenom(): string
-    {
-        return $this->prenom;
-    }
-
-    /**
-     * @param string $prenom
-     */
-    public function setPrenom(string $prenom): void
-    {
-        $this->prenom = $prenom;
-    }
-
-    /**
-     * @return string
-     */
-    public function getNationalite(): string
-    {
-        return $this->nationalite;
-    }
-
-    /**
-     * @param string $nationalite
-     */
-    public function setNationalite(string $nationalite): void
-    {
-        $this->nationalite = $nationalite;
-    }
-
-    /**
-     * @return int
-     */
-    public function getAnneeNaissance(): int
-    {
-        return $this->anneeNaissance;
-    }
-
-    /**
-     * @param int $anneeNaissance
-     */
-    public function setAnneeNaissance(int $anneeNaissance): void
-    {
-        $this->anneeNaissance = $anneeNaissance;
-    }
-
-    /**
-     * @return void
-     */
-    public function afficher(): void
-    {
-        echo "<p>Nom: " . $this->nom . " Prénom: " . $this->prenom . "</p>";
-    }
-
-    public static function getAllAuteurs(): array
-    {
-        $bdd = new Database;
-        $bdd->connect();
-        $bdd = $bdd->pdo();
-        $query = $bdd->query("SELECT * FROM auteur");
-        $data = $query->fetchAll(PDO::FETCH_ASSOC);
-
-        $array = array();
-        foreach ($data as $auteur){
-            $array[] = new Auteur($auteur['numAuteur']);
-        }
-        return $array;
-    }
-}
\ No newline at end of file
diff --git a/TP2/ex4/conn.php b/TP2/ex4/conn.php
deleted file mode 100644
index 9fb503a4a1a6cee0f502836bf945e12b62b05130..0000000000000000000000000000000000000000
--- a/TP2/ex4/conn.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-class Connexion
-{
-    // attributs de la classe Connexion paramètres de connexion à la base
-    static private $hostname = 'localhost';
-    static private $database = 'iut-dev';
-    static private $login = 'iut-dev-user';
-    static private $password = 'p73i74KAV8lami2iyIpehE5ozic8GA';
-
-    // attribut de la classe Connexion paramètres d'encodage
-    static private $tabUTF8 = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");
-
-    // attribut de la classe Connexion qui recevra l'instance PDO
-    static private $pdo;
-
-    // getter de pdo
-    static public function pdo()
-    {
-        return self::$pdo;
-    }
-
-    // fonction de connexion
-    static public function connect()
-    {
-        $h = self::$hostname;
-        $d = self::$database;
-        $l = self::$login;
-        $p = self::$password;
-        $t = self::$tabUTF8;
-        try {
-            self::$pdo = new PDO("mysql:host=$h;dbname=$d", $l, $p, $t);
-            self::$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
-        } catch (PDOException $e) {
-            echo "Erreur de connexion !";
-        }
-    }
-}
\ No newline at end of file
diff --git a/TP2/ex4/index.php b/TP2/ex4/index.php
deleted file mode 100644
index d54d07ec5e74889a7ce7f696c32689664b86dd02..0000000000000000000000000000000000000000
--- a/TP2/ex4/index.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-ini_set('display_errors', 1);
-ini_set('display_startup_errors', 1);
-error_reporting(E_ALL);
-
-require "init.php";
-require "process.php";
-?>
-<html lang="fr">
-<head>
-    <meta charset="utf-8">
-    <title>Test formulaire</title>
-</head>
-<body>
-<h1>Voici la liste des utilisateurs</h1>
-<?php
-foreach ($auteurs as $auteur){
-    $auteur->afficher();
-}
-?>
-
-<h1>Ajouter un auteur</h1>
-<form action="" method="post">
-    <label>
-        Nom
-        <input type="text" name="nom" placeholder="Nom" required>
-    </label>
-    <label>
-        Prénom
-        <input type="text" name="prenom" placeholder="Prenom" required>
-    </label>
-    <label>
-        Nationalité
-        <input type="text" name="nationalite" placeholder="Nationalité" required>
-    </label>
-    <label>
-        Année de naissance
-        <input type="number" name="anneeNaissance" placeholder="Année de naissance" required>
-    </label>
-    <button type="submit">Créer un auteur</button>
-</form>
-</body>
-</html>
\ No newline at end of file
diff --git a/TP2/ex4/init.php b/TP2/ex4/init.php
deleted file mode 100644
index 216b117e5a7e48fae0aa14ab6cc5cccdfb164df0..0000000000000000000000000000000000000000
--- a/TP2/ex4/init.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-require "conn.php";
-require "Auteur.php";
-
-$createTable = "CREATE TABLE IF NOT EXISTS auteur ( `numAuteur` INT NOT NULL AUTO_INCREMENT , `nom` VARCHAR(64) NOT NULL , `prenom` VARCHAR(64) NOT NULL , `nationalite` VARCHAR(32) NOT NULL , `anneeNaissance` INT NOT NULL , PRIMARY KEY (`numAuteur`)) ENGINE = InnoDB;";
-
-$bdd = new Database;
-$bdd->connect();
-$bdd = $bdd->pdo();
-$query = $bdd->query($createTable);
diff --git a/TP2/ex4/process.php b/TP2/ex4/process.php
deleted file mode 100644
index 2f7148fabb0939f7d1e3136761e357dcc5c65262..0000000000000000000000000000000000000000
--- a/TP2/ex4/process.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-if(!empty($_POST)){
-    if(!empty($_POST['nom']) && !empty($_POST['prenom']) && !empty($_POST['nationalite']) && !empty($_POST['anneeNaissance'])){
-        $bdd = new Database;
-        $bdd->connect();
-        $bdd = $bdd->pdo();
-        $query = $bdd->prepare("INSERT INTO auteur (nom, prenom, nationalite, anneeNaissance) VALUE (?,?,?,?)");
-        $query->execute([$_POST['nom'], $_POST['prenom'], $_POST['nationalite'], $_POST['anneeNaissance']]);
-
-        echo "Auteur ajouté";
-    }else{
-        echo "Données manquantes pour ajouter l'auteur.";
-    }
-}
-
-$auteurs = Auteur::getAllAuteurs();
\ No newline at end of file
diff --git a/TP3/TP3_web.pdf b/TP3/TP3_web.pdf
deleted file mode 100644
index cbf7b014bf14005df238f7e33afa46296335ff48..0000000000000000000000000000000000000000
Binary files a/TP3/TP3_web.pdf and /dev/null differ
diff --git a/TP3/auteur.sql b/TP3/auteur.sql
deleted file mode 100644
index d498d9e542d8dcb92f2ef304cca794a9fa3ec009..0000000000000000000000000000000000000000
--- a/TP3/auteur.sql
+++ /dev/null
@@ -1,72 +0,0 @@
--- phpMyAdmin SQL Dump
--- version 5.0.4deb2+deb11u1
--- https://www.phpmyadmin.net/
---
--- Hôte : localhost:3306
--- Généré le : lun. 26 sep. 2022 à 08:41
--- Version du serveur :  10.5.15-MariaDB-0+deb11u1
--- Version de PHP : 7.4.30
-
-SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
-START TRANSACTION;
-SET time_zone = "+00:00";
-
-
-/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
-/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
-/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
-/*!40101 SET NAMES utf8mb4 */;
-
---
--- Base de données : `sgagne`
---
-
--- --------------------------------------------------------
-
---
--- Structure de la table `auteur`
---
-
-CREATE TABLE `auteur` (
-  `numAuteur` tinyint(4) NOT NULL,
-  `nom` varchar(50) NOT NULL,
-  `prenom` varchar(50) NOT NULL,
-  `nationalite` varchar(10) NOT NULL,
-  `anneeNaissance` int(11) NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
---
--- Déchargement des données de la table `auteur`
---
-
-INSERT INTO `auteur` (`numAuteur`, `nom`, `prenom`, `nationalite`, `anneeNaissance`) VALUES
-(1, 'Hugo', 'Victor', 'F', 1802),
-(2, 'Thilliez', 'Franck', 'F', 1973),
-(3, 'Twain', 'Mark', 'USA', 1835),
-(4, 'Norek', 'Olivier', 'F', 1975),
-(5, 'Werber', 'Bernard', 'F', 1842);
-
---
--- Index pour les tables déchargées
---
-
---
--- Index pour la table `auteur`
---
-ALTER TABLE `auteur`
-  ADD PRIMARY KEY (`numAuteur`);
-
---
--- AUTO_INCREMENT pour les tables déchargées
---
-
---
--- AUTO_INCREMENT pour la table `auteur`
---
-ALTER TABLE `auteur`
-  MODIFY `numAuteur` tinyint(4) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=19;
-COMMIT;
-
-/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
-/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
-/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
diff --git a/TP3/conf/Connexion.php b/TP3/conf/Connexion.php
deleted file mode 100644
index bde3c837c324109f3eb7904ddd348de703237d51..0000000000000000000000000000000000000000
--- a/TP3/conf/Connexion.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-class Connexion {
-
-  	// attributs de la classe Connexion paramètres de connexion à la base
-    static private $hostname = 'localhost';
-    static private $database = 'iut-dev';
-    static private $login = 'iut-dev-user';
-    static private $password = 'p73i74KAV8lami2iyIpehE5ozic8GA';
-
-  	// attribut de la classe Connexion paramètres d'encodage
-  	static private $tabUTF8 = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");
-
-  	// attribut de la classe Connexion qui recevra l'instance PDO
-  	static private $pdo;
-
-  	// getter de pdo
-  	static public function pdo() {return self::$pdo;}
-
-  	// fonction de connexion
-  	static public function connect()  {
-    	$h = self::$hostname;
-    	$d = self::$database;
-    	$l = self::$login;
-    	$p = self::$password;
-    	$t = self::$tabUTF8;
-    	try {
-    		self::$pdo = new PDO("mysql:host=$h;dbname=$d",$l,$p,$t);
-    		self::$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
-    	} catch(PDOException $e) {
-    		echo "Erreur de connexion !";
-    	}
-  	}
-}
\ No newline at end of file
diff --git a/TP3/controller/controllerVoiture.php b/TP3/controller/controllerVoiture.php
deleted file mode 100644
index 36d7369b905f647ac4bbce6a9f8d26d74ffeafac..0000000000000000000000000000000000000000
--- a/TP3/controller/controllerVoiture.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-$lesTutures = Voiture::getAllVoitures();
-
-include "view/list.php";
-
-?>
\ No newline at end of file
diff --git a/TP3/ex0.zip b/TP3/ex0.zip
deleted file mode 100644
index e98884f4e7cd50ca5f3e8adc27a8cc34c0831b0d..0000000000000000000000000000000000000000
Binary files a/TP3/ex0.zip and /dev/null differ
diff --git a/TP3/model/Voiture.php b/TP3/model/Voiture.php
deleted file mode 100644
index da2c5a5d7eb16910feca336e37b96b67ed4fc175..0000000000000000000000000000000000000000
--- a/TP3/model/Voiture.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-class Voiture{
-    private $marque;
-    private $couleur;
-    private $immatriculation;
-
-    public function __construct($details)
-    {
-        if(isset($details['marque'])){
-            $this->marque = $details['marque'];
-        }else{
-            echo "Marque introuvable, \"iconnue\" sera spécifié.";
-            $this->marque = "inconnue";
-        }
-        if(isset($details['couleur'])){
-            $this->marque = $details['couleur'];
-        }else{
-            echo "Couleur introuvable, \"iconnue\" sera spécifié.";
-            $this->couleur = "inconnue";
-        }
-        if(isset($details['immatriculation'])){
-            $this->marque = $details['immatriculation'];
-        }else{
-            echo "Immatriculation introuvable, \"iconnue\" sera spécifié.";
-            $this->immatriculation = "inconnue";
-        }
-    }
-
-	public function getMarque() {
-		return $this->marque;
-	}
-
-	public function setMarque($marque) {
-		$this->marque = $marque;
-	}
-
-	public function getCouleur() {
-		return $this->couleur;
-	}
-
-	public function setCouleur($couleur) {
-		$this->couleur = $couleur;
-	}
-
-	public function getImmatriculation() {
-		return $this->immatriculation;
-	}
-
-	public function setImmatriculation($immatriculation) {
-		$this->immatriculation = $immatriculation;
-	}
-
-    public function afficher(){
-        echo "La voiture ".$this->couleur." immatriculée ".$this->immatriculation." est de la marque ".$this->marque.".";
-    }
-
-    public static function getAllVoitures(){
-        $bdd = new Database;
-        $bdd->connect();
-        $bdd = $bdd->pdo();
-        $query = $bdd->query("SELECT * FROM voiture");
-        return $query->fetchAll(PDO::FETCH_ASSOC);
-    }
-
-    public static function rechercherParPlaque($plaque){
-        $bdd = new Database;
-        $bdd->connect();
-        $bdd = $bdd->pdo();
-        $query = $bdd->prepare("SELECT * FROM voiture WHERE immatriculation=?");
-        $query->execute([$plaque]);
-        return $query->fetch(PDO::FETCH_ASSOC);
-    }
-
-    public static function deleteVoitureByImmat($plaque){
-        $bdd = new Database;
-        $bdd->connect();
-        $bdd = $bdd->pdo();
-        $query = $bdd->prepare("DELETE FROM voiture WHERE immatriculation=?");
-        $query->execute([$plaque]);
-    }
-
-    public static function addVoiture($immat, $marque, $couleur){
-        $bdd = new Database;
-        $bdd->connect();
-        $bdd = $bdd->pdo();
-        $query = $bdd->prepare("INSERT INTO `voiture` (`immatriculation`, `marque`, `couleur`) VALUES (?,?,?)");
-        $query->execute([$immat, $marque, $couleur]);
-    }
-
-    public static function updateVoiture($immat, $marque, $couleur){
-        $bdd = new Database;
-        $bdd->connect();
-        $bdd = $bdd->pdo();
-        $query = $bdd->prepare("UPDATE `voiture` SET `marque` = ?, `couleur` = ? WHERE `immatriculation` = ?");
-        $query->execute([$marque, $couleur, $immat]);
-    }
-}
\ No newline at end of file
diff --git a/TP3/routeur.php b/TP3/routeur.php
deleted file mode 100644
index 7fd8fec8b5f38477f3672dae55285377c6c3cef5..0000000000000000000000000000000000000000
--- a/TP3/routeur.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-require_once "conf/Connexion.php";
-require_once "model/Voiture.php";
-require_once "controller/controllerVoiture.php";
-
-
-
diff --git a/TP3/view/list.php b/TP3/view/list.php
deleted file mode 100644
index f2590b6383769b542bea9cd97319686f87caab19..0000000000000000000000000000000000000000
--- a/TP3/view/list.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset='utf-8'>
-    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
-    <title>Formulaire Création Voiture</title>
-    <meta name='viewport' content='width=device-width, initial-scale=1'>
-    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
-    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
-    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
-</head>
-<body class="bg-dark">
-
-    <div class="container mt-5 bg-light rounded p-2">
-        <h1>Gestionnaire de véhicules</h1>
-        <p>Voici la liste des véhicules garés.</p>
-        
-        <table class="table">
-            <thead class="thead-dark">
-                <tr>
-                    <th scope="col">Immatriculation</th>
-                    <th scope="col">Marque</th>
-                    <th scope="col">Couleur</th>
-                </tr>
-            </thead>
-            <tbody id="tableau">
-                <!--
-                <tr>
-                    <th scope="row">1</th>
-                    <td>Mark</td>
-                    <td>Otto</td>
-                </tr>
-                -->
-                <?php
-                if(isset($lesTutures)){
-                    foreach($lesTutures as $tuture){
-                        echo ('<tr>\
-                        <th scope="row">'.$tuture["immatriculation"].'</th>
-                        <td>'.$tuture["marque"].'</td>
-                        <td>'.$tuture["couleur"].'</td>
-                        
-                    </tr>');
-                    }
-                }
-                
-                ?>
-            </tbody>
-          </table>
-    </div>
-</body>
-</html>
-
diff --git a/TP4/TP4_web.pdf b/TP4/TP4_web.pdf
deleted file mode 100644
index 2a7886e29092e4e0ac8e696fc78083ba73e2e6cc..0000000000000000000000000000000000000000
Binary files a/TP4/TP4_web.pdf and /dev/null differ
diff --git a/TP4/bibliotheque.sql b/TP4/bibliotheque.sql
deleted file mode 100644
index 697d3c20f2eac759e55984df00719f2bf6924fc4..0000000000000000000000000000000000000000
--- a/TP4/bibliotheque.sql
+++ /dev/null
@@ -1,455 +0,0 @@
--- phpMyAdmin SQL Dump
--- version 5.0.4deb2+deb11u1
--- https://www.phpmyadmin.net/
---
--- Hôte : localhost:3306
--- Généré le : Dim 02 oct. 2022 à 17:19
--- Version du serveur :  10.5.15-MariaDB-0+deb11u1
--- Version de PHP : 7.4.30
-
-SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
-START TRANSACTION;
-SET time_zone = "+00:00";
-
-
-/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
-/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
-/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
-/*!40101 SET NAMES utf8mb4 */;
-
---
--- Base de données : `sgagne`
---
-
--- --------------------------------------------------------
-
---
--- Structure de la table `Adherent`
---
-
-CREATE TABLE `Adherent` (
-  `login` varchar(50) CHARACTER SET utf8 NOT NULL,
-  `mdp` varchar(64) CHARACTER SET utf8 NOT NULL,
-  `nomAdherent` varchar(50) DEFAULT NULL,
-  `prenomAdherent` varchar(50) DEFAULT NULL,
-  `email` varchar(50) DEFAULT NULL,
-  `dateAdhesion` date DEFAULT NULL,
-  `numCategorie` int(11) NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-
---
--- Déchargement des données de la table `Adherent`
---
-
-INSERT INTO `Adherent` (`login`, `mdp`, `nomAdherent`, `prenomAdherent`, `email`, `dateAdhesion`, `numCategorie`) VALUES
-('lafleche', '12345', 'SELLA', 'Philippe', 'philippe.sella@yopmail.com', '2022-10-05', 3),
-('musclor', 'grrr', 'CHABAL', 'Sébastien', 'sebastien.chabal@yopmail.com', '2022-10-05', 2),
-('rico', 'delprado', 'DI MECO', 'Eric', 'eric.di-meco@yopmail.com', '2022-10-09', 3),
-('speedy', 'azerty', 'DUPONT', 'Antoine', 'antoine.dupont@yopmail.com', '2022-10-03', 1),
-('theboss', 'jojo', 'MOSCATO', 'Vincent', 'vincent.moscato@yopmail.com', '2022-10-03', 1);
-
--- --------------------------------------------------------
-
---
--- Structure de la table `Auteur`
---
-
-CREATE TABLE `Auteur` (
-  `numAuteur` int(11) NOT NULL,
-  `nom` varchar(50) DEFAULT NULL,
-  `prenom` varchar(50) DEFAULT NULL,
-  `anneeNaissance` int(11) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-
---
--- Déchargement des données de la table `Auteur`
---
-
-INSERT INTO `Auteur` (`numAuteur`, `nom`, `prenom`, `anneeNaissance`) VALUES
-(1, 'THILLIEZ', 'Franck', 1973),
-(2, 'NOREK', 'Olivier', 1975),
-(3, 'CORNWELL', 'Patricia', 1956),
-(4, 'GARY', 'Romain', 1914),
-(5, 'KLEIN', 'Etienne', 1958),
-(6, 'HAWKING', 'Stephen', 1942),
-(7, 'EINSTEIN', 'Albert', 1879),
-(8, 'HELMSTETTER', 'Didier', 1953),
-(9, 'DROUIN', 'Emilie', NULL),
-(10, 'MORAND', 'Elodie', NULL),
-(11, 'ZIDANE', 'Zinedine', 1972),
-(12, 'MARX', 'Thierry', 1959),
-(13, 'HAUMONT', 'Raphaël', 1978),
-(14, 'HAMILTON', 'Gene', NULL),
-(15, 'TURING', 'Alan', 1912);
-
--- --------------------------------------------------------
-
---
--- Structure de la table `Categorie`
---
-
-CREATE TABLE `Categorie` (
-  `numCategorie` int(11) NOT NULL,
-  `libelle` varchar(50) DEFAULT NULL,
-  `nbLivresAutorises` int(11) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-
---
--- Déchargement des données de la table `Categorie`
---
-
-INSERT INTO `Categorie` (`numCategorie`, `libelle`, `nbLivresAutorises`) VALUES
-(1, 'basique', 2),
-(2, 'régulier', 5),
-(3, 'fervent', 8);
-
--- --------------------------------------------------------
-
---
--- Structure de la table `DateEmprunt`
---
-
-CREATE TABLE `DateEmprunt` (
-  `numDateEmprunt` int(11) NOT NULL,
-  `dateEmprunt` date NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-
---
--- Déchargement des données de la table `DateEmprunt`
---
-
-INSERT INTO `DateEmprunt` (`numDateEmprunt`, `dateEmprunt`) VALUES
-(1, '2022-10-02'),
-(2, '2022-10-03'),
-(3, '2022-10-04'),
-(4, '2022-10-05');
-
--- --------------------------------------------------------
-
---
--- Structure de la table `emprunte`
---
-
-CREATE TABLE `emprunte` (
-  `numLivre` int(11) NOT NULL,
-  `login` varchar(50) CHARACTER SET utf8 NOT NULL,
-  `numDateEmprunt` int(11) NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-
---
--- Déchargement des données de la table `emprunte`
---
-
-INSERT INTO `emprunte` (`numLivre`, `login`, `numDateEmprunt`) VALUES
-(1, 'rico', 1);
-
--- --------------------------------------------------------
-
---
--- Structure de la table `estAuteurDe`
---
-
-CREATE TABLE `estAuteurDe` (
-  `numAuteur` int(11) NOT NULL,
-  `numLivre` int(11) NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-
---
--- Déchargement des données de la table `estAuteurDe`
---
-
-INSERT INTO `estAuteurDe` (`numAuteur`, `numLivre`) VALUES
-(1, 1),
-(1, 2),
-(3, 3),
-(3, 4),
-(3, 5),
-(4, 6),
-(4, 7),
-(5, 10),
-(5, 11),
-(6, 9),
-(7, 8),
-(8, 12),
-(9, 13),
-(10, 13),
-(11, 14),
-(12, 15),
-(13, 15),
-(14, 16),
-(15, 17);
-
--- --------------------------------------------------------
-
---
--- Structure de la table `estDeNationalite`
---
-
-CREATE TABLE `estDeNationalite` (
-  `numAuteur` int(11) NOT NULL,
-  `numNationalite` int(11) NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-
---
--- Déchargement des données de la table `estDeNationalite`
---
-
-INSERT INTO `estDeNationalite` (`numAuteur`, `numNationalite`) VALUES
-(1, 1),
-(2, 1),
-(3, 2),
-(4, 1),
-(4, 5),
-(5, 1),
-(6, 4),
-(7, 2),
-(7, 6),
-(8, 1),
-(9, 1),
-(10, 1),
-(11, 1),
-(12, 1),
-(13, 1),
-(14, 2),
-(15, 1);
-
--- --------------------------------------------------------
-
---
--- Structure de la table `Genre`
---
-
-CREATE TABLE `Genre` (
-  `numGenre` int(11) NOT NULL,
-  `intitule` varchar(50) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-
---
--- Déchargement des données de la table `Genre`
---
-
-INSERT INTO `Genre` (`numGenre`, `intitule`) VALUES
-(1, 'roman policier'),
-(2, 'sciences'),
-(3, 'jardinage'),
-(4, 'tricot'),
-(5, 'sport'),
-(6, 'cuisine'),
-(7, 'bricolage'),
-(8, 'informatique'),
-(9, 'roman');
-
--- --------------------------------------------------------
-
---
--- Structure de la table `Livre`
---
-
-CREATE TABLE `Livre` (
-  `numLivre` int(11) NOT NULL,
-  `titre` varchar(50) DEFAULT NULL,
-  `anneeParution` int(11) DEFAULT NULL,
-  `numGenre` int(11) NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-
---
--- Déchargement des données de la table `Livre`
---
-
-INSERT INTO `Livre` (`numLivre`, `titre`, `anneeParution`, `numGenre`) VALUES
-(1, 'Le syndrome E', 2010, 1),
-(2, 'Sharko', 2017, 1),
-(3, 'Postmortem', 1990, 1),
-(4, 'Une peine d\'exception', 1993, 1),
-(5, 'La séquence des corps', 1994, 1),
-(6, 'Tulipe', 1946, 9),
-(7, 'La promesse de l\'aube', 1960, 9),
-(8, 'Conceptions scientifiques', 1952, 2),
-(9, 'Une brève histoire du temps', 1988, 2),
-(10, 'Les tactiques de Chronos', 2003, 2),
-(11, 'Discours sur l\'origine de l\'univers', 2010, 2),
-(12, 'Le potager du paresseux', 2019, 3),
-(13, 'Tricoter ses chaussettes', 2021, 4),
-(14, 'Sur un coup de tête', 2006, 5),
-(15, 'L\'innovation aux fourneaux', 2016, 6),
-(16, 'Le bricolage pour les nuls', 1998, 7),
-(17, 'PHP pour les nuls', 2022, 8);
-
--- --------------------------------------------------------
-
---
--- Structure de la table `Nationalite`
---
-
-CREATE TABLE `Nationalite` (
-  `numNationalite` int(11) NOT NULL,
-  `pays` varchar(50) DEFAULT NULL,
-  `abrege` varchar(50) DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-
---
--- Déchargement des données de la table `Nationalite`
---
-
-INSERT INTO `Nationalite` (`numNationalite`, `pays`, `abrege`) VALUES
-(1, 'France', 'FRA'),
-(2, 'Etats-Unis', 'USA'),
-(3, 'Suède', 'SWE'),
-(4, 'Royaume-Uni', 'GBR'),
-(5, 'Russie', 'RUS'),
-(6, 'Allemagne', 'DEU');
-
--- --------------------------------------------------------
-
---
--- Index pour les tables déchargées
---
-
---
--- Index pour la table `Adherent`
---
-ALTER TABLE `Adherent`
-  ADD PRIMARY KEY (`login`),
-  ADD KEY `ctAd1` (`numCategorie`);
-
---
--- Index pour la table `Auteur`
---
-ALTER TABLE `Auteur`
-  ADD PRIMARY KEY (`numAuteur`);
-
---
--- Index pour la table `Categorie`
---
-ALTER TABLE `Categorie`
-  ADD PRIMARY KEY (`numCategorie`);
-
---
--- Index pour la table `DateEmprunt`
---
-ALTER TABLE `DateEmprunt`
-  ADD PRIMARY KEY (`numDateEmprunt`);
-
---
--- Index pour la table `emprunte`
---
-ALTER TABLE `emprunte`
-  ADD PRIMARY KEY (`numLivre`,`login`,`numDateEmprunt`),
-  ADD KEY `ctEmprunte2` (`login`),
-  ADD KEY `ctEmprunte3` (`numDateEmprunt`);
-
---
--- Index pour la table `estAuteurDe`
---
-ALTER TABLE `estAuteurDe`
-  ADD PRIMARY KEY (`numAuteur`,`numLivre`),
-  ADD KEY `ctestAuteurDe2` (`numLivre`);
-
---
--- Index pour la table `estDeNationalite`
---
-ALTER TABLE `estDeNationalite`
-  ADD PRIMARY KEY (`numAuteur`,`numNationalite`),
-  ADD KEY `ctEstDeNationalite2` (`numNationalite`);
-
---
--- Index pour la table `Genre`
---
-ALTER TABLE `Genre`
-  ADD PRIMARY KEY (`numGenre`);
-
---
--- Index pour la table `Livre`
---
-ALTER TABLE `Livre`
-  ADD PRIMARY KEY (`numLivre`),
-  ADD KEY `ctL1` (`numGenre`);
-
---
--- Index pour la table `Nationalite`
---
-ALTER TABLE `Nationalite`
-  ADD PRIMARY KEY (`numNationalite`);
-
---
--- AUTO_INCREMENT pour les tables déchargées
---
-
---
--- AUTO_INCREMENT pour la table `Auteur`
---
-ALTER TABLE `Auteur`
-  MODIFY `numAuteur` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=16;
-
---
--- AUTO_INCREMENT pour la table `Categorie`
---
-ALTER TABLE `Categorie`
-  MODIFY `numCategorie` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;
-
---
--- AUTO_INCREMENT pour la table `DateEmprunt`
---
-ALTER TABLE `DateEmprunt`
-  MODIFY `numDateEmprunt` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
-
---
--- AUTO_INCREMENT pour la table `Genre`
---
-ALTER TABLE `Genre`
-  MODIFY `numGenre` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;
-
---
--- AUTO_INCREMENT pour la table `Livre`
---
-ALTER TABLE `Livre`
-  MODIFY `numLivre` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=18;
-
---
--- AUTO_INCREMENT pour la table `Nationalite`
---
-ALTER TABLE `Nationalite`
-  MODIFY `numNationalite` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;
-
---
--- Contraintes pour les tables déchargées
---
-
---
--- Contraintes pour la table `Adherent`
---
-ALTER TABLE `Adherent`
-  ADD CONSTRAINT `ctAd1` FOREIGN KEY (`numCategorie`) REFERENCES `Categorie` (`numCategorie`) ON DELETE CASCADE ON UPDATE CASCADE;
-
---
--- Contraintes pour la table `emprunte`
---
-ALTER TABLE `emprunte`
-  ADD CONSTRAINT `ctEmprunte1` FOREIGN KEY (`numLivre`) REFERENCES `Livre` (`numLivre`) ON DELETE CASCADE ON UPDATE CASCADE,
-  ADD CONSTRAINT `ctEmprunte2` FOREIGN KEY (`login`) REFERENCES `Adherent` (`login`) ON DELETE CASCADE ON UPDATE CASCADE,
-  ADD CONSTRAINT `ctEmprunte3` FOREIGN KEY (`numDateEmprunt`) REFERENCES `DateEmprunt` (`numDateEmprunt`) ON DELETE CASCADE ON UPDATE CASCADE;
-
---
--- Contraintes pour la table `estAuteurDe`
---
-ALTER TABLE `estAuteurDe`
-  ADD CONSTRAINT `ctestAuteurDe1` FOREIGN KEY (`numAuteur`) REFERENCES `Auteur` (`numAuteur`) ON DELETE CASCADE ON UPDATE CASCADE,
-  ADD CONSTRAINT `ctestAuteurDe2` FOREIGN KEY (`numLivre`) REFERENCES `Livre` (`numLivre`) ON DELETE CASCADE ON UPDATE CASCADE;
-
---
--- Contraintes pour la table `estDeNationalite`
---
-ALTER TABLE `estDeNationalite`
-  ADD CONSTRAINT `ctEstDeNationalite1` FOREIGN KEY (`numAuteur`) REFERENCES `Auteur` (`numAuteur`) ON DELETE CASCADE ON UPDATE CASCADE,
-  ADD CONSTRAINT `ctEstDeNationalite2` FOREIGN KEY (`numNationalite`) REFERENCES `Nationalite` (`numNationalite`) ON DELETE CASCADE ON UPDATE CASCADE;
-
---
--- Contraintes pour la table `Livre`
---
-ALTER TABLE `Livre`
-  ADD CONSTRAINT `ctL1` FOREIGN KEY (`numGenre`) REFERENCES `Genre` (`numGenre`) ON DELETE CASCADE ON UPDATE CASCADE;
-COMMIT;
-
-/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
-/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
-/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
diff --git a/TP4/ex0/config/connexion.php b/TP4/ex0/config/connexion.php
deleted file mode 100644
index 27af8d90771bbef9fe9936785fae5568773a251b..0000000000000000000000000000000000000000
--- a/TP4/ex0/config/connexion.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-class Connexion
-{
-    // les attributs static caractéristiques de la connexion
-    static private $hostname = 'localhost';
-    static private $database = 'iut-dev';
-    static private $login = 'iut-dev-user';
-    static private $password = 'p73i74KAV8lami2iyIpehE5ozic8GA';
-
-    static private $tabUTF8 = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");
-
-    // l'attribut static qui matérialisera la connexion
-    static private $pdo;
-
-    // le getter public de cet attribut
-    static public function pdo()
-    {
-        return self::$pdo;
-    }
-
-    // la fonction static de connexion qui initialise $pdo et lance la tentative de connexion
-    static public function connect()
-    {
-        $h = self::$hostname;
-        $d = self::$database;
-        $l = self::$login;
-        $p = self::$password;
-        $t = self::$tabUTF8;
-        try {
-            self::$pdo = new PDO("mysql:host=$h;dbname=$d", $l, $p, $t);
-            self::$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
-        } catch (PDOException $e) {
-            echo "erreur de connexion : " . $e->getMessage() . "<br>";
-        }
-    }
-}
-
-?>
diff --git a/TP4/ex0/controleur/controleurAuteur.php b/TP4/ex0/controleur/controleurAuteur.php
deleted file mode 100644
index 96dffe1264861edb77527a42717df1cd43d21b12..0000000000000000000000000000000000000000
--- a/TP4/ex0/controleur/controleurAuteur.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-  require_once("modele/auteur.php");
-
-  class ControleurAuteur {
-
-    public static function lireAuteurs() {
-      $titre = "les auteurs";
-      $tableau = Auteur::getAllAuteurs();
-      $tableauAffichage = array();
-      foreach($tableau as $auteur) {
-        $numAuteur = $auteur->getNumAuteur();
-        $nom = $auteur->getNom();
-        $prenom = $auteur->getPrenom();
-        $lienDetails = "<a class='bouton' href=\"routeur.php?controleur=controleurAuteur&action=lireAuteur&numAuteur=$numAuteur\"> détails </a>";
-        $tableauAffichage[] = "<div class='ligne'><div>Auteur $prenom $nom</div><div> $lienDetails</div></div>";
-      }
-      include("vue/debut.php");
-      include("vue/menu.html");
-      include("vue/lesAuteurs.php");
-      include("vue/fin.html");
-    }
-
-    public static function lireAuteur() {
-      $titre = "un auteur";
-      $numAuteur = $_GET["numAuteur"];
-      $auteur = Auteur::getAuteurByNum($numAuteur);
-      include("vue/debut.php");
-      include("vue/menu.html");
-      include("vue/unAuteur.php");
-      include("vue/fin.html");
-    }
-
-  }
-
-?>
diff --git a/TP4/ex0/css/styles.css b/TP4/ex0/css/styles.css
deleted file mode 100644
index 8ba9598e773a9c31a18a05b59bff1ff6f12e46a5..0000000000000000000000000000000000000000
--- a/TP4/ex0/css/styles.css
+++ /dev/null
@@ -1,13 +0,0 @@
-.ligne {
-  display:flex;
-  flex-direction: row;
-  justify-content: space-between;
-  margin-top:10px;
-  margin-left:5%;
-  width:50%;
-}
-
-nav {
-  margin:10px;
-  padding:5px;
-}
diff --git a/TP4/ex0/modele/auteur.php b/TP4/ex0/modele/auteur.php
deleted file mode 100644
index 87e37b311bb6e53c09c7cbe2e96569dba51b9229..0000000000000000000000000000000000000000
--- a/TP4/ex0/modele/auteur.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-class Auteur {
-
-// attributs
-	private $numAuteur;
-	private $nom;
-	private $prenom;
-	private $anneeNaissance;
-
-	// getter
-	public function getNumAuteur() {return $this->numAuteur;}
-	public function getNom() {return $this->nom;}
-	public function getPrenom() {return $this->prenom;}
-	public function getAnneeNaissance() {return $this->anneeNaissance;}
-
-	// setter
-	public function setNumAuteur($nu) {$this->numAuteur = $nu;}
-	public function setNom($n) {$this->nom = $n;}
-	public function setPrenom($p) {$this->prenom = $p;}
-	public function setAnneeNaissance($a) {$this->anneeNaissance = $a;}
-
-	// un constructeur
-	public function __construct($nu = NULL, $n = NULL, $p = NULL, $a = NULL)  {
-		if (!is_null($nu)) {
-			$this->numAuteur = $nu;
-			$this->nom = $n;
-			$this->prenom = $p;
-			$this->anneeNaissance = $a;
-		}
-	}
-
-	// une methode d'affichage.
-	public function afficher() {
-		echo "<p>auteur $this->prenom $this->nom, né(e) en $this->anneeNaissance </p>";
-	}
-
-	// méthode static qui retourne les auteurs en un tableau d'objets
-	public static function getAllAuteurs() {
-		// écriture de la requête
-		$requete = "SELECT * FROM Auteur;";
-    // envoi de la requête et stockage de la réponse
-		$resultat = Database::pdo()->query($requete);
-    // traitement de la réponse
-    $resultat->setFetchmode(PDO::FETCH_CLASS,'Auteur');
-    $tableau = $resultat->fetchAll();
-		return $tableau;
-	}
-
-	// méthode static qui retourne un auteur identifié par son numAuteur
-	public static function getAuteurByNum($numAuteur) {
-		// écriture de la requête
-		$requetePreparee = "SELECT * FROM Auteur WHERE numAuteur = :num_tag;";
-		$req_prep = Database::pdo()->prepare($requetePreparee);
-		// le tableau des valeurs
-		$valeurs = array("num_tag" => $numAuteur);
-		try {
-			// envoi de la requête
-			$req_prep->execute($valeurs);
-			// traitement de la réponse
-	    $req_prep->setFetchmode(PDO::FETCH_CLASS,'Auteur');
-			// récupération de l'auteur
-			$a = $req_prep->fetch();
-			// retour
-			return $a;
-		} catch(PDEException $e) {
-			echo $e->getMessage();
-		}
-	}
-
-}
-?>
diff --git a/TP4/ex0/routeur.php b/TP4/ex0/routeur.php
deleted file mode 100644
index 640a9ba99b1c405ceead9f194533e2d2ab9d931c..0000000000000000000000000000000000000000
--- a/TP4/ex0/routeur.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-  require_once("config/connexion.php");
-  Database::connect();
-  require_once("controleur/controleurAuteur.php");
-  $action = "lireAuteurs";
-  if (isset($_GET["action"]) && in_array($_GET["action"],get_class_methods('ControleurAuteur'))) {
-    $action = $_GET["action"];
-  }
-  controleurAuteur::$action();
-?>
diff --git a/TP4/ex0/vue/debut.php b/TP4/ex0/vue/debut.php
deleted file mode 100644
index 250267fdb23821d5710a65199d9a323f9a3745d3..0000000000000000000000000000000000000000
--- a/TP4/ex0/vue/debut.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE html>
-<html lang="fr">
-  <head>
-    <meta charset="utf-8">
-    <title><?php echo $titre; ?></title>
-    <link rel="stylesheet" href="css/styles.css">
-  </head>
-  <body>
diff --git a/TP4/ex0/vue/fin.html b/TP4/ex0/vue/fin.html
deleted file mode 100644
index b605728ee26a9b0a7be60e81d23f660a87893ebb..0000000000000000000000000000000000000000
--- a/TP4/ex0/vue/fin.html
+++ /dev/null
@@ -1,2 +0,0 @@
-  </body>
-</html>
diff --git a/TP4/ex0/vue/lesAuteurs.php b/TP4/ex0/vue/lesAuteurs.php
deleted file mode 100644
index 17763fe00e1daac232a8d71a8e7a703eebfcec2c..0000000000000000000000000000000000000000
--- a/TP4/ex0/vue/lesAuteurs.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-	foreach ($tableauAffichage as $ligne) {
-		echo $ligne;
-	}
-?>
diff --git a/TP4/ex0/vue/menu.html b/TP4/ex0/vue/menu.html
deleted file mode 100644
index dc225ff8661c5da5bf23be0da965e8c691b15dc7..0000000000000000000000000000000000000000
--- a/TP4/ex0/vue/menu.html
+++ /dev/null
@@ -1,3 +0,0 @@
-<nav>
-  <a href="routeur.php?action=lireAuteurs">tous les auteurs</a>
-</nav>
diff --git a/TP4/ex0/vue/unAuteur.php b/TP4/ex0/vue/unAuteur.php
deleted file mode 100644
index 8e7b2b7342338cb3e2d43c32f9fcad1017683117..0000000000000000000000000000000000000000
--- a/TP4/ex0/vue/unAuteur.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
-	$auteur->afficher();
-?>
diff --git a/TP4/ex1.zip b/TP4/ex1.zip
deleted file mode 100644
index dee9d1fa9a392df52fcce928870a11ead173c25e..0000000000000000000000000000000000000000
Binary files a/TP4/ex1.zip and /dev/null differ
diff --git a/TP4/ex1/.env b/TP4/ex1/.env
deleted file mode 100644
index 5200165ceea1a9ce0dc91c381b1043a26518932f..0000000000000000000000000000000000000000
--- a/TP4/ex1/.env
+++ /dev/null
@@ -1,4 +0,0 @@
-DB_HOST=localhost
-DB_NAME=iut-dev
-DB_LOGIN=iut-dev-user
-DB_PASSWORD=p73i74KAV8lami2iyIpehE5ozic8GA
diff --git a/TP4/ex1/app/helpers/config.php b/TP4/ex1/app/helpers/config.php
deleted file mode 100644
index c4a9e47d21a9f3faace1afdc5a6ccdbcd20c5f29..0000000000000000000000000000000000000000
--- a/TP4/ex1/app/helpers/config.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-/**
- * @param string $index
- * @return string
- */
-function config(string $index) : string
-{
-    $envPath = getcwd() . "/.env";
-    if(file_exists($envPath)){
-        $index = str_replace('_', '\\_', $index);
-        $envFile = file_get_contents($envPath);
-        preg_match("/" . $index . '=(.*?)\n/', $envFile, $matches);
-        $value = $matches[count($matches) - 1];
-        $value = preg_replace('/[^A-Za-z0-9\-]/', '', $value);
-        return $value;
-    } else {
-        return "";
-    }
-}
\ No newline at end of file
diff --git a/TP4/ex1/app/models/View.php b/TP4/ex1/app/models/View.php
deleted file mode 100644
index 215012d0ca3288f77c001e3e3ba3a95d3d576eb8..0000000000000000000000000000000000000000
--- a/TP4/ex1/app/models/View.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-
-/**
- * Tentative de créer un système de template.
- */
-class View
-{
-    /**
-     * S'occupe d'ouvrir la template.
-     * @param string $viewName
-     * @param array $args
-     * @return string
-     */
-    public static function load(string $viewName, array $args = []): string
-    {
-        $viewPathParts = explode(".", $viewName);
-        $viewPath = "";
-        foreach ($viewPathParts as $pathPart){
-            $viewPath .= "/" . $pathPart;
-        }
-        $viewPath = "resources/views" . $viewPath . ".php";
-        if(file_exists($viewPath)){
-            return self::render(self::parse($viewPath), $args);
-        }else{
-            return "La vue " . $viewName . " est introuvable.";
-        }
-    }
-
-    /**
-     * S'occuper de remplir la template
-     * @param string $viewPath
-     * @param array $args
-     * @return string
-     */
-    public static function parse(string $viewPath): string
-    {
-        $viewContent = file_get_contents($viewPath);
-
-        // On va chercher le @extends('nom-de-la-vue') (seul le premier est pris en compte)
-        preg_match("/@extends[ ]{0,1}\([\"|'](.*?)[\"|']\)/", $viewContent, $extendMatch);
-        if(!empty($extendMatch)){
-            $contentToPlaceInExtends = str_replace($extendMatch[0], "", $viewContent);
-            $viewContent = self::load($extendMatch[1]);
-
-            // Maintenant on va regarder si on a pas des @yield('nom') à remplacer
-            // On commence avec les @section("nom", "valeur"). L'ordre est important car la second regex peut englober la première.
-            preg_match_all("/@section[ ]{0,1}\([ ]{0,1}[\"|'](.*?)[\"|'][ ]{0,1},[ ]{0,1}[\"|'](.*?)[\"|'][ ]{0,1}\)/",
-                $contentToPlaceInExtends, $inlineSectionMatches);
-            for($i = 0; $i<count($inlineSectionMatches[0]); $i++){
-                $viewContent = preg_replace(
-                    "/@yield[ ]{0,1}\([\"|']" . preg_quote($inlineSectionMatches[1][$i]) . "[\"|']\)/",
-                    $inlineSectionMatches[2][$i],
-                    $viewContent
-                );
-
-                // On supprime la directive dans le contenu mis de côté car la regex du dessous capte aussi celle-ci.
-                $contentToPlaceInExtends = str_replace($inlineSectionMatches[0][$i],
-                    $inlineSectionMatches[2][$i],
-                    $contentToPlaceInExtends);
-            }
-
-            // Et @section("nom") --> @endsection
-            preg_match_all("/@section[ ]{0,1}\([ ]{0,1}[\"|'](.*?)[\"|'][ ]{0,1}\)((\n|.)*?)@endsection/",
-            $contentToPlaceInExtends, $sectionMatches);
-            for($i = 0; $i<count($sectionMatches[0]); $i++){
-                //echo $sectionMatches[1][$i] . " - " . $sectionMatches[2][$i];
-                $viewContent = preg_replace(
-                    "/@yield[ ]{0,1}\([\"|']" . preg_quote($sectionMatches[1][$i]) . "[\"|']\)/",
-                    $sectionMatches[2][$i],
-                    $viewContent
-                );
-            }
-        }
-
-        // On va rechercher toutes les concaténations {{ $var }}
-        $viewContent = preg_replace("/\{\{(.*?)\}\}/", "<?=$1?>", $viewContent);
-
-        // On va rechercher tous les @foreach($var1 as $var2) @endforeach
-        $viewContent = preg_replace("/@foreach[ ]{0,1}\((.*?) as (.*?)\)/",
-            "<?php foreach($1 as $2) { ?>", $viewContent);
-        $viewContent = preg_replace("/@endforeach/", "<?php } ?>", $viewContent);
-
-        return $viewContent;
-    }
-
-    /**
-     * @param string $viewCode
-     * @param array $args
-     * @return string
-     */
-    public static function render(string $viewCode, array $args = []): string
-    {
-        extract($args);
-        // On ouvre le buffer pour enregistrer le résultat de l'echo.
-        ob_start();
-        eval("?>" . $viewCode . "<?php");
-        return ob_get_clean();
-    }
-}
\ No newline at end of file
diff --git a/TP4/ex1/controller/ControleurAdherent.php b/TP4/ex1/controller/ControleurAdherent.php
deleted file mode 100644
index 8373cf5f2d84bb29f0a1adbde8f236fc2ac6b7d8..0000000000000000000000000000000000000000
--- a/TP4/ex1/controller/ControleurAdherent.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-require_once("models/Adherent.php");
-
-class ControleurAdherent
-{
-    /**
-     * Charge la page de la liste des adhérents.
-     * @return string
-     * @throws Exception
-     */
-    public static function lireAdherents(): string
-    {
-        $adherents = Adherent::getAllAdherents();
-        $objects = [];
-        foreach ($adherents as $adherent){
-            $object['title'] = $adherent->prenomAdherent . " " . $adherent->nomAdherent;
-            $object['desc'] = "ID: {$adherent->login}<br>Date d'adhésion: {$adherent->dateAdhesion->format("Y-m-d")}";
-            $object['url'] = "index.php?action=lireAdherent&login={$adherent->login}";
-            $objects[] = $object;
-        }
-        return view('data-grid', [
-            'pageTitle' => 'Liste des adhérents',
-            'pageDesc' => 'Voici la liste de tous les adhérents',
-            'objects' => $objects
-        ]);
-    }
-
-    /**
-     * Charge la page du détail d'un adhérent.
-     * @return string
-     * @throws Exception
-     */
-    public static function lireAdherent(): string
-    {
-        if (empty($_GET["login"])) {
-            die("Le paramètre login n'est pas spécifié.");
-        }
-        $adherent = Adherent::getAdherentByLogin($_GET["login"]);
-        return view('simple-data', [
-            'pageTitle' => 'Information du livre',
-            'pageContent' => $adherent->afficher()
-        ]);
-    }
-}
\ No newline at end of file
diff --git a/TP4/ex1/controller/ControleurAuteur.php b/TP4/ex1/controller/ControleurAuteur.php
deleted file mode 100644
index 7f648d6af10d4ab0678c61561972004a82a84f1a..0000000000000000000000000000000000000000
--- a/TP4/ex1/controller/ControleurAuteur.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-require_once("models/Auteur.php");
-
-/**
- *
- */
-class ControleurAuteur
-{
-    /**
-     * Charge la page de la liste des auteurs.
-     * @return string
-     */
-    public static function lireAuteurs() : string
-    {
-        $auteurs = Auteur::getAllAuteurs();
-
-        $objects = [];
-        foreach ($auteurs as $auteur){
-            $object['title'] = $auteur->prenom . " " . $auteur->nom;
-            $object['desc'] = "ID: {$auteur->numAuteur}<br>Date de naissance: {$auteur->anneeNaissance}";
-            $object['url'] = "index.php?action=lireAuteur&numAuteur={$auteur->numAuteur}";
-            $objects[] = $object;
-        }
-        return view('data-grid', [
-            'pageTitle' => 'Liste des auteurs',
-            'pageDesc' => 'Voici la liste de tous les auteurs',
-            'objects' => $objects
-        ]);
-    }
-
-    /**
-     * Charge la page du détail d'un auteur.
-     * @return string
-     */
-    public static function lireAuteur() : string
-    {
-        if (empty($_GET["numAuteur"])) {
-            die("Le paramètre numAuteur n'est pas spécifié.");
-        }
-        $auteur = Auteur::getAuteurByNum($_GET["numAuteur"]);
-        return view('simple-data', [
-            'pageTitle' => 'Information du livre',
-            'pageContent' => $auteur->afficher()
-        ]);
-    }
-
-}
-
-?>
diff --git a/TP4/ex1/controller/ControleurLivre.php b/TP4/ex1/controller/ControleurLivre.php
deleted file mode 100644
index 3d5b0d983a794a78f8bf2a96b9684673ddbf5e3e..0000000000000000000000000000000000000000
--- a/TP4/ex1/controller/ControleurLivre.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-require_once("models/Livre.php");
-
-class ControleurLivre
-{
-    /**
-     * Charge la page de la liste des adhérents.
-     * @return string
-     * @throws Exception
-     */
-    public static function lireLivres(): string
-    {
-        $livres = Livre::getAllLivres();
-
-        $objects = [];
-        foreach ($livres as $livre){
-            $object['title'] = $livre->titre;
-            $object['desc'] = "ID: {$livre->numLivre}<br>Année de parution: {$livre->anneeParution}";
-            $object['url'] = "index.php?action=lireLivre&numLivre={$livre->numLivre}";
-            $objects[] = $object;
-        }
-        return view('data-grid', [
-            'pageTitle' => 'Liste des livres',
-            'pageDesc' => 'Voici la liste de tous les livres',
-            'objects' => $objects
-        ]);
-    }
-
-    /**
-     * Charge la page du détail d'un adhérent.
-     * @return string
-     * @throws Exception
-     */
-    public static function lireLivre(): string
-    {
-        if (empty($_GET["numLivre"])) {
-            die("Le paramètre numLivre n'est pas spécifié.");
-        }
-        $livre = Livre::getLivreByNumLivre($_GET["numLivre"]);
-
-        return view('simple-data', [
-            'pageTitle' => 'Information du livre',
-            'pageContent' => $livre->afficher()
-        ]);
-    }
-}
\ No newline at end of file
diff --git a/TP4/ex1/index.php b/TP4/ex1/index.php
deleted file mode 100644
index 17c98ca6cbdfef2a3129d2c8c23fb5a85fd9cb08..0000000000000000000000000000000000000000
--- a/TP4/ex1/index.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-ini_set('display_errors', 1);
-ini_set('display_startup_errors', 1);
-error_reporting(E_ALL);
-
-require_once("app/helpers/config.php");
-require_once("app/helpers/views.php");
-require_once("app/models/Database.php");
-
-require_once("controller/ControleurAuteur.php");
-require_once("controller/ControleurAdherent.php");
-
-require_once("controller/ControleurLivre.php");
-
-Database::connect();
-
-if (empty($_GET["action"])) {
-    echo ControleurAuteur::lireAuteurs();
-} else {
-    if (in_array($_GET["action"], get_class_methods('ControleurAuteur'))) {
-        $action = $_GET["action"];
-        echo ControleurAuteur::$action();
-    } elseif (in_array($_GET["action"], get_class_methods('ControleurAdherent'))) {
-        $action = $_GET["action"];
-        echo ControleurAdherent::$action();
-    } elseif (in_array($_GET["action"], get_class_methods('ControleurLivre'))) {
-        $action = $_GET["action"];
-        echo ControleurLivre::$action();
-    }
-}
-
-?>
diff --git a/TP4/ex1/models/Auteur.php b/TP4/ex1/models/Auteur.php
deleted file mode 100644
index 2dd8482a287340f93b1568623434de0dac5296a2..0000000000000000000000000000000000000000
--- a/TP4/ex1/models/Auteur.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-require_once "Objet.php";
-
-class Auteur extends Objet
-{
-	// attributs
-    protected ?int $numAuteur;
-    protected ?string $nom;
-    protected ?string $prenom;
-    protected ?int $anneeNaissance;
-
-    // getter
-
-    public function __construct($nu = NULL, $n = NULL, $p = NULL, $a = NULL)
-    {
-        if (!is_null($nu)) {
-            $this->numAuteur = $nu;
-            $this->nom = $n;
-            $this->prenom = $p;
-            $this->anneeNaissance = $a;
-        }
-    }
-
-    public static function getAllAuteurs()
-    {
-        // écriture de la requête
-        $requete = "SELECT * FROM Auteur;";
-        // envoi de la requête et stockage de la réponse
-        $resultat = Database::pdo()->query($requete);
-        // traitement de la réponse
-        $resultat->setFetchmode(PDO::FETCH_CLASS, 'Auteur');
-        $tableau = $resultat->fetchAll();
-        return $tableau;
-    }
-
-    public static function getAuteurByNum($numAuteur)
-    {
-        // écriture de la requête
-        $requetePreparee = "SELECT * FROM Auteur WHERE numAuteur = :num_tag;";
-        $req_prep = Database::pdo()->prepare($requetePreparee);
-        // le tableau des valeurs
-        $valeurs = array("num_tag" => $numAuteur);
-        $response = null;
-        try {
-            // envoi de la requête
-            $req_prep->execute($valeurs);
-            // traitement de la réponse
-            $req_prep->setFetchmode(PDO::FETCH_CLASS, 'Auteur');
-            // récupération de l'auteur
-            $response = $req_prep->fetch();
-            // retour
-
-        } catch (PDOException $e) {
-            echo $e->getMessage();
-        }
-        return $response;
-    }
-
-    // méthode static qui retourne un auteur identifié par son numAuteur
-
-    public function afficher()
-    {
-        return "<p>auteur $this->prenom $this->nom, né(e) en $this->anneeNaissance </p>";
-    }
-
-}
-
-?>
diff --git a/TP4/ex1/models/Objet.php b/TP4/ex1/models/Objet.php
deleted file mode 100644
index 28c122325cdc9b7e41661e22ab2b031059f4a91e..0000000000000000000000000000000000000000
--- a/TP4/ex1/models/Objet.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-require_once "Objet.php";
-
-/**
- * Implémente les magic methods.
- */
-class Objet
-{
-    public function __construct($data = null)
-    {
-        if(!is_null($data)){
-            foreach ($data as $key => $value){
-                $this->$key = $value;
-            }
-        }
-    }
-    /**
-     * @param $name
-     * @return mixed
-     */
-    public function __get($name)
-    {
-        return $this->$name ?? null;
-    }
-
-    /**
-     * @param $name
-     * @param $value
-     * @return void
-     */
-    public function __set($name, $value)
-    {
-        $this->$name = $value;
-    }
-}
\ No newline at end of file
diff --git a/TP4/ex1/resources/css/styles.css b/TP4/ex1/resources/css/styles.css
deleted file mode 100644
index 8ba9598e773a9c31a18a05b59bff1ff6f12e46a5..0000000000000000000000000000000000000000
--- a/TP4/ex1/resources/css/styles.css
+++ /dev/null
@@ -1,13 +0,0 @@
-.ligne {
-  display:flex;
-  flex-direction: row;
-  justify-content: space-between;
-  margin-top:10px;
-  margin-left:5%;
-  width:50%;
-}
-
-nav {
-  margin:10px;
-  padding:5px;
-}
diff --git a/TP4/ex1/resources/views/components/navbar.php b/TP4/ex1/resources/views/components/navbar.php
deleted file mode 100644
index 542d9600855951d0a48daec394598139ebfe3d6e..0000000000000000000000000000000000000000
--- a/TP4/ex1/resources/views/components/navbar.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
-    <div class="container-fluid">
-        <a class="navbar-brand" href="?action=lireAuteurs">Bibliothèque</a>
-        <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
-            <span class="navbar-toggler-icon"></span>
-        </button>
-        <div class="collapse navbar-collapse" id="navbarNav">
-            <ul class="navbar-nav">
-                <li class="nav-item">
-                    <a class="nav-link" href="?action=lireAuteurs">
-                        Liste des auteurs
-                    </a>
-                </li>
-                <li class="nav-item">
-                    <a class="nav-link" href="?action=lireAdherents">Liste des adéherents</a>
-                </li>
-                <li class="nav-item">
-                    <a class="nav-link" href="?action=lireLivres">Liste des livres</a>
-                </li>
-            </ul>
-        </div>
-    </div>
-</nav>
-<script type="text/javascript">
-    const urlParams = new URLSearchParams(window.location.search);
-    let links = document.querySelectorAll('a[href="?action='+urlParams.get("action")+'"]');
-    for (var i=0; i<links.length; i++){
-        links[i].classList.add("active");
-    }
-</script>
\ No newline at end of file
diff --git a/TP4/ex1/resources/views/data-grid.php b/TP4/ex1/resources/views/data-grid.php
deleted file mode 100644
index bab5121ada6f840b13e62a0122b77bce0280fbbf..0000000000000000000000000000000000000000
--- a/TP4/ex1/resources/views/data-grid.php
+++ /dev/null
@@ -1,26 +0,0 @@
-@extends('layouts.page-layout')
-
-@section('title', '{{ $pageTitle }}')
-
-@section('content')
-<div class="container">
-    <h1>{{ $pageTitle }}</h1>
-    <p>{{ $pageDesc }}</p>
-    <div class="d-flex flex-wrap justify-content-between">
-        @foreach($objects as $object)
-        <div class="card mb-2" style="width: 18rem;">
-            <div class="card-body">
-                <h5 class="card-title">{{ $object['title'] }}</h5>
-                <p class="card-text">
-                    {{ $object['desc'] }}
-                </p>
-                <a class="btn btn-primary"
-                   href="{{ $object['url'] }}">
-                    Lire les détails
-                </a>
-            </div>
-        </div>
-        @endforeach
-    </div>
-</div>
-@endsection
\ No newline at end of file
diff --git a/TP4/ex1/resources/views/layouts/page-layout.php b/TP4/ex1/resources/views/layouts/page-layout.php
deleted file mode 100644
index 1734d49a9388804026029e0d0d0f0fe30e1e6858..0000000000000000000000000000000000000000
--- a/TP4/ex1/resources/views/layouts/page-layout.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<html lang="fr">
-<head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <title>@yield("title")</title>
-    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">
-</head>
-<body class="">
-    <?=view("components.navbar")?>
-    @yield("content")
-    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-OERcA2EqjJCMA+/3y+gxIOqMEjwtxJY7qPCqsdltbNJuaOe923+mo//f6V8Qbsw3" crossorigin="anonymous"></script>
-</body>
-</html>
diff --git a/TP4/ex1/resources/views/simple-data.php b/TP4/ex1/resources/views/simple-data.php
deleted file mode 100644
index 17bbe514fbf2970fda934a6cb34b98299e6987cf..0000000000000000000000000000000000000000
--- a/TP4/ex1/resources/views/simple-data.php
+++ /dev/null
@@ -1,10 +0,0 @@
-@extends('layouts.page-layout')
-
-@section('title', '{{ $pageTitle }}')
-
-@section('content')
-<div class="container">
-    <h1>{{ $pageTitle }}</h1>
-    {{ $pageContent }}
-</div>
-@endsection
\ No newline at end of file
diff --git a/TP4/ex1/test.php b/TP4/ex1/test.php
deleted file mode 100644
index 67f33f8c4bf9dc7db3eaaa75b8a620f289b99a2d..0000000000000000000000000000000000000000
--- a/TP4/ex1/test.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
-$test = "TESTEUU";
-echo('Ceci est un <?=$test?>!');
\ No newline at end of file
diff --git a/TP5/.env b/TP5/.env
deleted file mode 100644
index 5200165ceea1a9ce0dc91c381b1043a26518932f..0000000000000000000000000000000000000000
--- a/TP5/.env
+++ /dev/null
@@ -1,4 +0,0 @@
-DB_HOST=localhost
-DB_NAME=iut-dev
-DB_LOGIN=iut-dev-user
-DB_PASSWORD=p73i74KAV8lami2iyIpehE5ozic8GA
diff --git a/TP5/TP5_web.pdf b/TP5/TP5_web.pdf
deleted file mode 100644
index b3cca27ab80104a0d1683cd97ecb78049cab5834..0000000000000000000000000000000000000000
Binary files a/TP5/TP5_web.pdf and /dev/null differ
diff --git a/TP5/app/helpers/config.php b/TP5/app/helpers/config.php
deleted file mode 100644
index c4a9e47d21a9f3faace1afdc5a6ccdbcd20c5f29..0000000000000000000000000000000000000000
--- a/TP5/app/helpers/config.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-/**
- * @param string $index
- * @return string
- */
-function config(string $index) : string
-{
-    $envPath = getcwd() . "/.env";
-    if(file_exists($envPath)){
-        $index = str_replace('_', '\\_', $index);
-        $envFile = file_get_contents($envPath);
-        preg_match("/" . $index . '=(.*?)\n/', $envFile, $matches);
-        $value = $matches[count($matches) - 1];
-        $value = preg_replace('/[^A-Za-z0-9\-]/', '', $value);
-        return $value;
-    } else {
-        return "";
-    }
-}
\ No newline at end of file
diff --git a/TP5/app/helpers/views.php b/TP5/app/helpers/views.php
deleted file mode 100644
index 2546cdb1d76d4592e6a83c8b497914350cacb3a7..0000000000000000000000000000000000000000
--- a/TP5/app/helpers/views.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-require_once("app/models/View.php");
-/**
- * Charge le contenu d'une vue avec des paramètres.
- * @param string $viewName
- * @param array $args
- * @return string
- */
-function view(string $viewName, array $args = []): string
-{
-    return View::load($viewName, $args);
-}
\ No newline at end of file
diff --git a/TP5/app/models/Database.php b/TP5/app/models/Database.php
deleted file mode 100644
index 570f4a95f13f261ef74675375eb89a45d95a3348..0000000000000000000000000000000000000000
--- a/TP5/app/models/Database.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-class Database
-{
-    // les attributs static caractéristiques de la connexion
-    static private $hostname = 'localhost';
-    static private $database = 'iut-dev';
-    static private $login = 'iut-dev-user';
-    static private $password = 'p73i74KAV8lami2iyIpehE5ozic8GA';
-
-    static private $tabUTF8 = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");
-
-    // l'attribut static qui matérialisera la connexion
-    static private $pdo;
-
-    // le getter public de cet attribut
-    static public function pdo()
-    {
-        return self::$pdo;
-    }
-
-    // la fonction static de connexion qui initialise $pdo et lance la tentative de connexion
-    static public function connect()
-    {
-        $hostname = config("DB_HOST");
-        $database = config("DB_NAME");
-        $login = config("DB_LOGIN");
-        $password = config("DB_PASSWORD");
-        $t = self::$tabUTF8;
-        try {
-            self::$pdo = new PDO("mysql:host=$hostname;dbname=$database", $login, $password, $t);
-            self::$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
-        } catch (PDOException $e) {
-            echo "Erreur de connexion : " . $e->getMessage() . "<br>";
-        }
-    }
-}
-
-?>
diff --git a/TP5/app/models/View.php b/TP5/app/models/View.php
deleted file mode 100644
index 215012d0ca3288f77c001e3e3ba3a95d3d576eb8..0000000000000000000000000000000000000000
--- a/TP5/app/models/View.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-
-/**
- * Tentative de créer un système de template.
- */
-class View
-{
-    /**
-     * S'occupe d'ouvrir la template.
-     * @param string $viewName
-     * @param array $args
-     * @return string
-     */
-    public static function load(string $viewName, array $args = []): string
-    {
-        $viewPathParts = explode(".", $viewName);
-        $viewPath = "";
-        foreach ($viewPathParts as $pathPart){
-            $viewPath .= "/" . $pathPart;
-        }
-        $viewPath = "resources/views" . $viewPath . ".php";
-        if(file_exists($viewPath)){
-            return self::render(self::parse($viewPath), $args);
-        }else{
-            return "La vue " . $viewName . " est introuvable.";
-        }
-    }
-
-    /**
-     * S'occuper de remplir la template
-     * @param string $viewPath
-     * @param array $args
-     * @return string
-     */
-    public static function parse(string $viewPath): string
-    {
-        $viewContent = file_get_contents($viewPath);
-
-        // On va chercher le @extends('nom-de-la-vue') (seul le premier est pris en compte)
-        preg_match("/@extends[ ]{0,1}\([\"|'](.*?)[\"|']\)/", $viewContent, $extendMatch);
-        if(!empty($extendMatch)){
-            $contentToPlaceInExtends = str_replace($extendMatch[0], "", $viewContent);
-            $viewContent = self::load($extendMatch[1]);
-
-            // Maintenant on va regarder si on a pas des @yield('nom') à remplacer
-            // On commence avec les @section("nom", "valeur"). L'ordre est important car la second regex peut englober la première.
-            preg_match_all("/@section[ ]{0,1}\([ ]{0,1}[\"|'](.*?)[\"|'][ ]{0,1},[ ]{0,1}[\"|'](.*?)[\"|'][ ]{0,1}\)/",
-                $contentToPlaceInExtends, $inlineSectionMatches);
-            for($i = 0; $i<count($inlineSectionMatches[0]); $i++){
-                $viewContent = preg_replace(
-                    "/@yield[ ]{0,1}\([\"|']" . preg_quote($inlineSectionMatches[1][$i]) . "[\"|']\)/",
-                    $inlineSectionMatches[2][$i],
-                    $viewContent
-                );
-
-                // On supprime la directive dans le contenu mis de côté car la regex du dessous capte aussi celle-ci.
-                $contentToPlaceInExtends = str_replace($inlineSectionMatches[0][$i],
-                    $inlineSectionMatches[2][$i],
-                    $contentToPlaceInExtends);
-            }
-
-            // Et @section("nom") --> @endsection
-            preg_match_all("/@section[ ]{0,1}\([ ]{0,1}[\"|'](.*?)[\"|'][ ]{0,1}\)((\n|.)*?)@endsection/",
-            $contentToPlaceInExtends, $sectionMatches);
-            for($i = 0; $i<count($sectionMatches[0]); $i++){
-                //echo $sectionMatches[1][$i] . " - " . $sectionMatches[2][$i];
-                $viewContent = preg_replace(
-                    "/@yield[ ]{0,1}\([\"|']" . preg_quote($sectionMatches[1][$i]) . "[\"|']\)/",
-                    $sectionMatches[2][$i],
-                    $viewContent
-                );
-            }
-        }
-
-        // On va rechercher toutes les concaténations {{ $var }}
-        $viewContent = preg_replace("/\{\{(.*?)\}\}/", "<?=$1?>", $viewContent);
-
-        // On va rechercher tous les @foreach($var1 as $var2) @endforeach
-        $viewContent = preg_replace("/@foreach[ ]{0,1}\((.*?) as (.*?)\)/",
-            "<?php foreach($1 as $2) { ?>", $viewContent);
-        $viewContent = preg_replace("/@endforeach/", "<?php } ?>", $viewContent);
-
-        return $viewContent;
-    }
-
-    /**
-     * @param string $viewCode
-     * @param array $args
-     * @return string
-     */
-    public static function render(string $viewCode, array $args = []): string
-    {
-        extract($args);
-        // On ouvre le buffer pour enregistrer le résultat de l'echo.
-        ob_start();
-        eval("?>" . $viewCode . "<?php");
-        return ob_get_clean();
-    }
-}
\ No newline at end of file
diff --git a/TP5/controller/ControleurAuteur.php b/TP5/controller/ControleurAuteur.php
deleted file mode 100644
index fdd9baf049092a29412c458522464d0d06f10c41..0000000000000000000000000000000000000000
--- a/TP5/controller/ControleurAuteur.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-require_once "ControleurObjet.php";
-require_once("models/Auteur.php");
-
-class ControleurAuteur extends ControleurObjet
-{
-    protected static string $object = "Auteur";
-    /**
-     * Charge la page de la liste des auteurs.
-     * @return string
-     */
-    public static function lireAuteurs() : string
-    {
-        $auteurs = Auteur::getAllAuteurs();
-
-        $objects = [];
-        foreach ($auteurs as $auteur){
-            $object['title'] = $auteur->prenom . " " . $auteur->nom;
-            $object['desc'] = "ID: {$auteur->numAuteur}<br>Date de naissance: {$auteur->anneeNaissance}";
-            $object['url'] = "index.php?action=lireAuteur&numAuteur={$auteur->numAuteur}";
-            $objects[] = $object;
-        }
-        return view('data-grid', [
-            'pageTitle' => 'Liste des auteurs',
-            'pageDesc' => 'Voici la liste de tous les auteurs',
-            'objects' => $objects
-        ]);
-    }
-
-    /**
-     * Charge la page du détail d'un auteur.
-     * @return string
-     */
-    public static function lireAuteur() : string
-    {
-        if (empty($_GET["numAuteur"])) {
-            die("Le paramètre numAuteur n'est pas spécifié.");
-        }
-        $auteur = Auteur::getAuteurByNum($_GET["numAuteur"]);
-        return view('simple-data', [
-            'pageTitle' => 'Information du livre',
-            'pageContent' => $auteur->afficher()
-        ]);
-    }
-
-}
-
-?>
diff --git a/TP5/controller/ControleurObjet.php b/TP5/controller/ControleurObjet.php
deleted file mode 100644
index 04f34485eedd31828911f013ce59e4c153a7235d..0000000000000000000000000000000000000000
--- a/TP5/controller/ControleurObjet.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * Désolé mais le TP5 est une mauvaise idée de bout en bout.
- * Je me suis arrêté à l'ex 2 car je ne vois pas comment on pourrait aisément rassembler tous les contrôleurs ici
- * étant donné que le contenu diffère légèrement selon les modèles.
- */
-class ControleurObjet
-{
-    public static function lireObjets() : string
-    {
-        $titre = "Listes des " . strtolower(static::$object) . "s";
-        return $titre;
-    }
-}
\ No newline at end of file
diff --git a/TP5/index.php b/TP5/index.php
deleted file mode 100644
index 47a83c39313ce909c611361cece19289f76cdcb4..0000000000000000000000000000000000000000
--- a/TP5/index.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-ini_set('display_errors', 1);
-ini_set('display_startup_errors', 1);
-error_reporting(E_ALL);
-
-require_once("app/helpers/config.php");
-require_once("app/helpers/views.php");
-require_once("app/models/Database.php");
-
-require_once("controller/ControleurAuteur.php");
-require_once("controller/ControleurAdherent.php");
-
-require_once("controller/ControleurLivre.php");
-
-Database::connect();
-
-if (empty($_GET["action"])) {
-    echo ControleurAuteur::lireAuteurs();
-} else {
-    // Test TP 5
-    if ($_GET["action"] === "lireObjets" && !empty($_GET["objet"])) {
-        switch ($_GET["objet"]){
-            case 'Auteur':
-                echo ControleurAuteur::lireObjets();
-                break;
-            default:
-                echo ControleurAuteur::lireObjets();
-                break;
-        }
-    }
-    // Fin test TP5
-
-    // C'est plus long que get_class_methods mais c'est moins sujet à problèmes.
-    switch ($_GET["action"]){
-        case "lireAuteur":
-            echo ControleurAuteur::lireAuteur();
-            break;
-        case "lireAuteurs":
-            echo ControleurAuteur::lireAuteurs();
-            break;
-        case "lireAdherent":
-            echo ControleurAdherent::lireAdherent();
-            break;
-        case "lireAdherents":
-            echo ControleurAdherent::lireAdherents();
-            break;
-        case "lireLivre":
-            echo ControleurLivre::lireLivre();
-            break;
-        case "lireLivres":
-            echo ControleurLivre::lireLivres();
-            break;
-        default:
-            echo ControleurAuteur::lireAuteur();
-            break;
-    }
-}
diff --git a/TP5/models/Adherent.php b/TP5/models/Adherent.php
deleted file mode 100644
index 58668a7f6f7f91b275d599571e2b97ed9d5a928e..0000000000000000000000000000000000000000
--- a/TP5/models/Adherent.php
+++ /dev/null
@@ -1,104 +0,0 @@
-<?php
-require_once "Objet.php";
-
-class Adherent extends Objet
-{
-    protected string $login;
-    protected string $mdp;
-    protected string $nomAdherent;
-    protected string $prenomAdherent;
-    protected string $email;
-    protected DateTime $dateAdhesion;
-    protected int $numCategorie;
-
-    /**
-     * @param string $login
-     * @param string $mdp
-     * @param string $nomAdherent
-     * @param string $prenomAdherent
-     * @param string $email
-     * @param DateTime $dateAdhesion
-     * @param int $numCategorie
-     */
-    public function __construct(string $login, string $mdp, string $nomAdherent, string $prenomAdherent, string $email, DateTime $dateAdhesion, int $numCategorie)
-    {
-        $this->login = $login;
-        $this->mdp = $mdp;
-        $this->nomAdherent = $nomAdherent;
-        $this->prenomAdherent = $prenomAdherent;
-        $this->email = $email;
-        $this->dateAdhesion = $dateAdhesion;
-        $this->numCategorie = $numCategorie;
-    }
-
-    /**
-     * @return array
-     * @throws Exception
-     */
-    public static function getAllAdherents(): array
-    {
-        // écriture de la requête
-        $requete = "SELECT * FROM Adherent;";
-        // envoi de la requête et stockage de la réponse
-        $resultat = Database::pdo()->query($requete);
-        // traitement de la réponse
-        $resultat->setFetchmode(PDO::FETCH_ASSOC);
-        $resultat = $resultat->fetchAll();
-
-        $tableau = array();
-        foreach ($resultat as $row){
-            $tableau[] = new Adherent($row['login'],
-                $row['mdp'],
-                $row['nomAdherent'],
-                $row['prenomAdherent'],
-                $row['email'],
-                new DateTime($row['dateAdhesion']),
-                $row['numCategorie']);
-        }
-        return $tableau;
-    }
-
-    /**
-     * Trouve un adhérent selon son login unique.
-     * @param $login
-     * @return Adherent
-     * @throws Exception
-     */
-    public static function getAdherentByLogin($login) : Adherent
-    {
-        // écriture de la requête
-        $requetePreparee = "SELECT * FROM Adherent WHERE login = :login;";
-        $req_prep = Database::pdo()->prepare($requetePreparee);
-        // le tableau des valeurs
-        $valeurs = array("login" => $login);
-        $response = null;
-        try {
-            // envoi de la requête
-            $req_prep->execute($valeurs);
-            // traitement de la réponse
-            $req_prep->setFetchmode(PDO::FETCH_ASSOC);
-            // récupération de l'auteur
-            $row = $req_prep->fetch();
-            $response = new Adherent($row['login'],
-                $row['mdp'],
-                $row['nomAdherent'],
-                $row['prenomAdherent'],
-                $row['email'],
-                new DateTime($row['dateAdhesion']),
-                $row['numCategorie']);
-
-        } catch (PDOException $e) {
-            echo $e->getMessage();
-        }
-        return $response;
-    }
-
-    /**
-     * @return string
-     */
-    public function afficher(): string
-    {
-        return "<p>" . $this->prenomAdherent . " " . $this->nomAdherent . " a rejoint le "
-            .$this->dateAdhesion->format('Y-m-d H:i:s');
-    }
-}
\ No newline at end of file
diff --git a/TP5/models/Auteur.php b/TP5/models/Auteur.php
deleted file mode 100644
index 2dd8482a287340f93b1568623434de0dac5296a2..0000000000000000000000000000000000000000
--- a/TP5/models/Auteur.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-require_once "Objet.php";
-
-class Auteur extends Objet
-{
-	// attributs
-    protected ?int $numAuteur;
-    protected ?string $nom;
-    protected ?string $prenom;
-    protected ?int $anneeNaissance;
-
-    // getter
-
-    public function __construct($nu = NULL, $n = NULL, $p = NULL, $a = NULL)
-    {
-        if (!is_null($nu)) {
-            $this->numAuteur = $nu;
-            $this->nom = $n;
-            $this->prenom = $p;
-            $this->anneeNaissance = $a;
-        }
-    }
-
-    public static function getAllAuteurs()
-    {
-        // écriture de la requête
-        $requete = "SELECT * FROM Auteur;";
-        // envoi de la requête et stockage de la réponse
-        $resultat = Database::pdo()->query($requete);
-        // traitement de la réponse
-        $resultat->setFetchmode(PDO::FETCH_CLASS, 'Auteur');
-        $tableau = $resultat->fetchAll();
-        return $tableau;
-    }
-
-    public static function getAuteurByNum($numAuteur)
-    {
-        // écriture de la requête
-        $requetePreparee = "SELECT * FROM Auteur WHERE numAuteur = :num_tag;";
-        $req_prep = Database::pdo()->prepare($requetePreparee);
-        // le tableau des valeurs
-        $valeurs = array("num_tag" => $numAuteur);
-        $response = null;
-        try {
-            // envoi de la requête
-            $req_prep->execute($valeurs);
-            // traitement de la réponse
-            $req_prep->setFetchmode(PDO::FETCH_CLASS, 'Auteur');
-            // récupération de l'auteur
-            $response = $req_prep->fetch();
-            // retour
-
-        } catch (PDOException $e) {
-            echo $e->getMessage();
-        }
-        return $response;
-    }
-
-    // méthode static qui retourne un auteur identifié par son numAuteur
-
-    public function afficher()
-    {
-        return "<p>auteur $this->prenom $this->nom, né(e) en $this->anneeNaissance </p>";
-    }
-
-}
-
-?>
diff --git a/TP5/models/Categorie.php b/TP5/models/Categorie.php
deleted file mode 100644
index cc90eab92b835a565e0cfa153aae7225cd447326..0000000000000000000000000000000000000000
--- a/TP5/models/Categorie.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-
-/**
- *
- */
-class Categorie
-{
-    private int $numCategorie;
-    private string $libelle;
-    private int $nbLivresAutorises;
-
-    /**
-     * @param int $numCategorie
-     * @param string $libelle
-     * @param int $nbLivresAutorises
-     */
-    public function __construct(int $numCategorie, string $libelle, int $nbLivresAutorises)
-    {
-        $this->numCategorie = $numCategorie;
-        $this->libelle = $libelle;
-        $this->nbLivresAutorises = $nbLivresAutorises;
-    }
-
-    /**
-     * @return int
-     */
-    public function getNumCategorie(): int
-    {
-        return $this->numCategorie;
-    }
-
-    /**
-     * @param int $numCategorie
-     */
-    public function setNumCategorie(int $numCategorie): void
-    {
-        $this->numCategorie = $numCategorie;
-    }
-
-    /**
-     * @return string
-     */
-    public function getLibelle(): string
-    {
-        return $this->libelle;
-    }
-
-    /**
-     * @param string $libelle
-     */
-    public function setLibelle(string $libelle): void
-    {
-        $this->libelle = $libelle;
-    }
-
-    /**
-     * @return int
-     */
-    public function getNbLivresAutorises(): int
-    {
-        return $this->nbLivresAutorises;
-    }
-
-    /**
-     * @param int $nbLivresAutorises
-     */
-    public function setNbLivresAutorises(int $nbLivresAutorises): void
-    {
-        $this->nbLivresAutorises = $nbLivresAutorises;
-    }
-
-    /**
-     * @return void
-     */
-    public function afficher(): void{
-        echo "<p>Le livre" . $this->libelle . " est autorisé " . $this->nbLivresAutorises . " fois.</p>";
-    }
-}
\ No newline at end of file
diff --git a/TP5/models/DateEmprunt.php b/TP5/models/DateEmprunt.php
deleted file mode 100644
index c8aef9679609f8cbbb69a82be13c8cf37ab26c28..0000000000000000000000000000000000000000
--- a/TP5/models/DateEmprunt.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-class DateEmprunt
-{
-    private int $numDateEmprunt;
-    private DateTime $dateEmrpunt;
-
-    /**
-     * @return int
-     */
-    public function getNumDateEmprunt(): int
-    {
-        return $this->numDateEmprunt;
-    }
-
-    /**
-     * @param int $numDateEmprunt
-     */
-    public function setNumDateEmprunt(int $numDateEmprunt): void
-    {
-        $this->numDateEmprunt = $numDateEmprunt;
-    }
-
-    /**
-     * @return DateTime
-     */
-    public function getDateEmrpunt(): DateTime
-    {
-        return $this->dateEmrpunt;
-    }
-
-    /**
-     * @param DateTime $dateEmrpunt
-     */
-    public function setDateEmrpunt(DateTime $dateEmrpunt): void
-    {
-        $this->dateEmrpunt = $dateEmrpunt;
-    }
-
-
-}
\ No newline at end of file
diff --git a/TP5/models/Genre.php b/TP5/models/Genre.php
deleted file mode 100644
index 2c953d485903e032e9c2d92a3c52af154d32d8ce..0000000000000000000000000000000000000000
--- a/TP5/models/Genre.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-class Genre
-{
-    private int $numGenre;
-    private string $intitule;
-
-    /**
-     * @param int $numGenre
-     * @param string $intitule
-     */
-    public function __construct(int $numGenre, string $intitule)
-    {
-        $this->numGenre = $numGenre;
-        $this->intitule = $intitule;
-    }
-
-    /**
-     * @return int
-     */
-    public function getNumGenre(): int
-    {
-        return $this->numGenre;
-    }
-
-    /**
-     * @param int $numGenre
-     */
-    public function setNumGenre(int $numGenre): void
-    {
-        $this->numGenre = $numGenre;
-    }
-
-    /**
-     * @return string
-     */
-    public function getIntitule(): string
-    {
-        return $this->intitule;
-    }
-
-    /**
-     * @param string $intitule
-     */
-    public function setIntitule(string $intitule): void
-    {
-        $this->intitule = $intitule;
-    }
-}
\ No newline at end of file
diff --git a/TP5/models/Livre.php b/TP5/models/Livre.php
deleted file mode 100644
index bde6024f752931bccd03f7fef748ea6955b78cea..0000000000000000000000000000000000000000
--- a/TP5/models/Livre.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-require_once "Objet.php";
-
-class Livre extends Objet
-{
-    protected int $numLivre;
-    protected string $titre;
-    protected int $anneeParution;
-    protected int $numGenre;
-
-    /**
-     * @param int $numLivre
-     * @param string $titre
-     * @param int $anneeParution
-     * @param int $numGenre
-     */
-    public function __construct(int $numLivre, string $titre, int $anneeParution, int $numGenre)
-    {
-        $this->numLivre = $numLivre;
-        $this->titre = $titre;
-        $this->anneeParution = $anneeParution;
-        $this->numGenre = $numGenre;
-    }
-
-    /**
-     * @return array
-     */
-    public static function getAllLivres(): array
-    {
-        $query = Database::pdo()->query("SELECT * FROM Livre");
-        $query->setFetchmode(PDO::FETCH_ASSOC);
-        $queryResult = $query->fetchAll();
-
-        $tableau = array();
-        foreach ($queryResult as $row) {
-            $tableau[] = new Livre($row['numLivre'],
-                $row['titre'],
-                $row['anneeParution'],
-                $row['numGenre']);
-        }
-        return $tableau;
-    }
-
-    /**
-     * @param int $numLivre
-     * @return Livre
-     */
-    public static function getLivreByNumLivre(int $numLivre): Livre
-    {
-        $query = Database::pdo()->prepare("SELECT * FROM Livre WHERE numLivre = :numLivre");
-        $response = null;
-        try {
-            // envoi de la requête
-            $query->execute(['numLivre' => $numLivre]);
-            $query->setFetchmode(PDO::FETCH_ASSOC);
-            $queryResult = $query->fetch();
-            $response = new Livre($queryResult['numLivre'],
-                $queryResult['titre'],
-                $queryResult['anneeParution'],
-                $queryResult['numGenre']);
-        } catch (PDOException $e) {
-            echo $e->getMessage();
-        }
-        return $response;
-    }
-
-    /**
-     * @return string
-     */
-    public function afficher(): string
-    {
-        return "<p>" . $this->titre . " est paru en "
-            . $this->anneeParution;
-    }
-}
\ No newline at end of file
diff --git a/TP5/models/Nationalite.php b/TP5/models/Nationalite.php
deleted file mode 100644
index aee6ad6413dab3ca78624c8d508dab4189f71951..0000000000000000000000000000000000000000
--- a/TP5/models/Nationalite.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-class Nationalite
-{
-    private int $numNationalite;
-    private string $pays;
-    private string $abrege;
-
-    /**
-     * @param int $numNationalite
-     * @param string $pays
-     * @param string $abrege
-     */
-    public function __construct(int $numNationalite, string $pays, string $abrege)
-    {
-        $this->numNationalite = $numNationalite;
-        $this->pays = $pays;
-        $this->abrege = $abrege;
-    }
-
-    /**
-     * @return int
-     */
-    public function getNumNationalite(): int
-    {
-        return $this->numNationalite;
-    }
-
-    /**
-     * @param int $numNationalite
-     */
-    public function setNumNationalite(int $numNationalite): void
-    {
-        $this->numNationalite = $numNationalite;
-    }
-}
\ No newline at end of file
diff --git a/TP5/models/Objet.php b/TP5/models/Objet.php
deleted file mode 100644
index 28c122325cdc9b7e41661e22ab2b031059f4a91e..0000000000000000000000000000000000000000
--- a/TP5/models/Objet.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-require_once "Objet.php";
-
-/**
- * Implémente les magic methods.
- */
-class Objet
-{
-    public function __construct($data = null)
-    {
-        if(!is_null($data)){
-            foreach ($data as $key => $value){
-                $this->$key = $value;
-            }
-        }
-    }
-    /**
-     * @param $name
-     * @return mixed
-     */
-    public function __get($name)
-    {
-        return $this->$name ?? null;
-    }
-
-    /**
-     * @param $name
-     * @param $value
-     * @return void
-     */
-    public function __set($name, $value)
-    {
-        $this->$name = $value;
-    }
-}
\ No newline at end of file
diff --git a/TP5/resources/css/styles.css b/TP5/resources/css/styles.css
deleted file mode 100644
index 8ba9598e773a9c31a18a05b59bff1ff6f12e46a5..0000000000000000000000000000000000000000
--- a/TP5/resources/css/styles.css
+++ /dev/null
@@ -1,13 +0,0 @@
-.ligne {
-  display:flex;
-  flex-direction: row;
-  justify-content: space-between;
-  margin-top:10px;
-  margin-left:5%;
-  width:50%;
-}
-
-nav {
-  margin:10px;
-  padding:5px;
-}
diff --git a/TP5/resources/views/components/navbar.php b/TP5/resources/views/components/navbar.php
deleted file mode 100644
index 542d9600855951d0a48daec394598139ebfe3d6e..0000000000000000000000000000000000000000
--- a/TP5/resources/views/components/navbar.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
-    <div class="container-fluid">
-        <a class="navbar-brand" href="?action=lireAuteurs">Bibliothèque</a>
-        <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
-            <span class="navbar-toggler-icon"></span>
-        </button>
-        <div class="collapse navbar-collapse" id="navbarNav">
-            <ul class="navbar-nav">
-                <li class="nav-item">
-                    <a class="nav-link" href="?action=lireAuteurs">
-                        Liste des auteurs
-                    </a>
-                </li>
-                <li class="nav-item">
-                    <a class="nav-link" href="?action=lireAdherents">Liste des adéherents</a>
-                </li>
-                <li class="nav-item">
-                    <a class="nav-link" href="?action=lireLivres">Liste des livres</a>
-                </li>
-            </ul>
-        </div>
-    </div>
-</nav>
-<script type="text/javascript">
-    const urlParams = new URLSearchParams(window.location.search);
-    let links = document.querySelectorAll('a[href="?action='+urlParams.get("action")+'"]');
-    for (var i=0; i<links.length; i++){
-        links[i].classList.add("active");
-    }
-</script>
\ No newline at end of file
diff --git a/TP5/resources/views/data-grid.php b/TP5/resources/views/data-grid.php
deleted file mode 100644
index bab5121ada6f840b13e62a0122b77bce0280fbbf..0000000000000000000000000000000000000000
--- a/TP5/resources/views/data-grid.php
+++ /dev/null
@@ -1,26 +0,0 @@
-@extends('layouts.page-layout')
-
-@section('title', '{{ $pageTitle }}')
-
-@section('content')
-<div class="container">
-    <h1>{{ $pageTitle }}</h1>
-    <p>{{ $pageDesc }}</p>
-    <div class="d-flex flex-wrap justify-content-between">
-        @foreach($objects as $object)
-        <div class="card mb-2" style="width: 18rem;">
-            <div class="card-body">
-                <h5 class="card-title">{{ $object['title'] }}</h5>
-                <p class="card-text">
-                    {{ $object['desc'] }}
-                </p>
-                <a class="btn btn-primary"
-                   href="{{ $object['url'] }}">
-                    Lire les détails
-                </a>
-            </div>
-        </div>
-        @endforeach
-    </div>
-</div>
-@endsection
\ No newline at end of file
diff --git a/TP5/resources/views/layouts/page-layout.php b/TP5/resources/views/layouts/page-layout.php
deleted file mode 100644
index 1734d49a9388804026029e0d0d0f0fe30e1e6858..0000000000000000000000000000000000000000
--- a/TP5/resources/views/layouts/page-layout.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<html lang="fr">
-<head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <title>@yield("title")</title>
-    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">
-</head>
-<body class="">
-    <?=view("components.navbar")?>
-    @yield("content")
-    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-OERcA2EqjJCMA+/3y+gxIOqMEjwtxJY7qPCqsdltbNJuaOe923+mo//f6V8Qbsw3" crossorigin="anonymous"></script>
-</body>
-</html>
diff --git a/TP5/resources/views/simple-data.php b/TP5/resources/views/simple-data.php
deleted file mode 100644
index 17bbe514fbf2970fda934a6cb34b98299e6987cf..0000000000000000000000000000000000000000
--- a/TP5/resources/views/simple-data.php
+++ /dev/null
@@ -1,10 +0,0 @@
-@extends('layouts.page-layout')
-
-@section('title', '{{ $pageTitle }}')
-
-@section('content')
-<div class="container">
-    <h1>{{ $pageTitle }}</h1>
-    {{ $pageContent }}
-</div>
-@endsection
\ No newline at end of file
diff --git a/TP6/.env b/TP6/.env
deleted file mode 100644
index 5200165ceea1a9ce0dc91c381b1043a26518932f..0000000000000000000000000000000000000000
--- a/TP6/.env
+++ /dev/null
@@ -1,4 +0,0 @@
-DB_HOST=localhost
-DB_NAME=iut-dev
-DB_LOGIN=iut-dev-user
-DB_PASSWORD=p73i74KAV8lami2iyIpehE5ozic8GA
diff --git a/TP6/TP6_web.pdf b/TP6/TP6_web.pdf
deleted file mode 100644
index 1552fc8c46be418e99370219cdaff85deebfec1c..0000000000000000000000000000000000000000
Binary files a/TP6/TP6_web.pdf and /dev/null differ
diff --git a/TP6/app/helpers/config.php b/TP6/app/helpers/config.php
deleted file mode 100644
index c4a9e47d21a9f3faace1afdc5a6ccdbcd20c5f29..0000000000000000000000000000000000000000
--- a/TP6/app/helpers/config.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-/**
- * @param string $index
- * @return string
- */
-function config(string $index) : string
-{
-    $envPath = getcwd() . "/.env";
-    if(file_exists($envPath)){
-        $index = str_replace('_', '\\_', $index);
-        $envFile = file_get_contents($envPath);
-        preg_match("/" . $index . '=(.*?)\n/', $envFile, $matches);
-        $value = $matches[count($matches) - 1];
-        $value = preg_replace('/[^A-Za-z0-9\-]/', '', $value);
-        return $value;
-    } else {
-        return "";
-    }
-}
\ No newline at end of file
diff --git a/TP6/app/helpers/views.php b/TP6/app/helpers/views.php
deleted file mode 100644
index 2546cdb1d76d4592e6a83c8b497914350cacb3a7..0000000000000000000000000000000000000000
--- a/TP6/app/helpers/views.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-require_once("app/models/View.php");
-/**
- * Charge le contenu d'une vue avec des paramètres.
- * @param string $viewName
- * @param array $args
- * @return string
- */
-function view(string $viewName, array $args = []): string
-{
-    return View::load($viewName, $args);
-}
\ No newline at end of file
diff --git a/TP6/app/models/Database.php b/TP6/app/models/Database.php
deleted file mode 100644
index 570f4a95f13f261ef74675375eb89a45d95a3348..0000000000000000000000000000000000000000
--- a/TP6/app/models/Database.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-class Database
-{
-    // les attributs static caractéristiques de la connexion
-    static private $hostname = 'localhost';
-    static private $database = 'iut-dev';
-    static private $login = 'iut-dev-user';
-    static private $password = 'p73i74KAV8lami2iyIpehE5ozic8GA';
-
-    static private $tabUTF8 = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");
-
-    // l'attribut static qui matérialisera la connexion
-    static private $pdo;
-
-    // le getter public de cet attribut
-    static public function pdo()
-    {
-        return self::$pdo;
-    }
-
-    // la fonction static de connexion qui initialise $pdo et lance la tentative de connexion
-    static public function connect()
-    {
-        $hostname = config("DB_HOST");
-        $database = config("DB_NAME");
-        $login = config("DB_LOGIN");
-        $password = config("DB_PASSWORD");
-        $t = self::$tabUTF8;
-        try {
-            self::$pdo = new PDO("mysql:host=$hostname;dbname=$database", $login, $password, $t);
-            self::$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
-        } catch (PDOException $e) {
-            echo "Erreur de connexion : " . $e->getMessage() . "<br>";
-        }
-    }
-}
-
-?>
diff --git a/TP6/controller/ControleurAdherent.php b/TP6/controller/ControleurAdherent.php
deleted file mode 100644
index 90089f045c7d2b45c8442a1841e820f7e8963532..0000000000000000000000000000000000000000
--- a/TP6/controller/ControleurAdherent.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-require_once "ControleurObjet.php";
-require_once("models/Adherent.php");
-
-class ControleurAdherent extends ControleurObjet
-{
-    protected static string $object = "Adherent";
-    /**
-     * Charge la page de la liste des adhérents.
-     * @return string
-     * @throws Exception
-     */
-    public static function lireAdherents(): string
-    {
-        $adherents = Adherent::getAllAdherents();
-        $objects = [];
-        foreach ($adherents as $adherent){
-            $object['title'] = $adherent->prenomAdherent . " " . $adherent->nomAdherent;
-            $object['desc'] = "ID: {$adherent->login}<br>Date d'adhésion: {$adherent->dateAdhesion->format("Y-m-d")}";
-            $object['url'] = "index.php?action=lireAdherent&login={$adherent->login}";
-            $objects[] = $object;
-        }
-        return view('data-grid', [
-            'pageTitle' => 'Liste des adhérents',
-            'pageDesc' => 'Voici la liste de tous les adhérents',
-            'objects' => $objects
-        ]);
-    }
-
-    /**
-     * Charge la page du détail d'un adhérent.
-     * @return string
-     * @throws Exception
-     */
-    public static function lireAdherent(): string
-    {
-        if (empty($_GET["login"])) {
-            die("Le paramètre login n'est pas spécifié.");
-        }
-        $adherent = Adherent::getAdherentByLogin($_GET["login"]);
-        return view('simple-data', [
-            'pageTitle' => 'Information du livre',
-            'pageContent' => $adherent->afficher()
-        ]);
-    }
-}
\ No newline at end of file
diff --git a/TP6/controller/ControleurLivre.php b/TP6/controller/ControleurLivre.php
deleted file mode 100644
index 0f0f651cfe0285eed9b76e2c007d300f21e3b637..0000000000000000000000000000000000000000
--- a/TP6/controller/ControleurLivre.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-require_once "ControleurObjet.php";
-require_once("models/Livre.php");
-
-class ControleurLivre extends ControleurObjet
-{
-    protected static string $object = "Livre";
-    /**
-     * Charge la page de la liste des adhérents.
-     * @return string
-     * @throws Exception
-     */
-    public static function lireLivres(): string
-    {
-        $livres = Livre::getAllLivres();
-
-        $objects = [];
-        foreach ($livres as $livre){
-            $object['title'] = $livre->titre;
-            $object['desc'] = "ID: {$livre->numLivre}<br>Année de parution: {$livre->anneeParution}";
-            $object['url'] = "index.php?action=lireLivre&numLivre={$livre->numLivre}";
-            $objects[] = $object;
-        }
-        return view('data-grid', [
-            'pageTitle' => 'Liste des livres',
-            'pageDesc' => 'Voici la liste de tous les livres',
-            'objects' => $objects
-        ]);
-    }
-
-    /**
-     * Charge la page du détail d'un adhérent.
-     * @return string
-     * @throws Exception
-     */
-    public static function lireLivre(): string
-    {
-        if (empty($_GET["numLivre"])) {
-            die("Le paramètre numLivre n'est pas spécifié.");
-        }
-        $livre = Livre::getLivreByNumLivre($_GET["numLivre"]);
-
-        return view('simple-data', [
-            'pageTitle' => 'Information du livre',
-            'pageContent' => $livre->afficher()
-        ]);
-    }
-}
\ No newline at end of file
diff --git a/TP6/index.php b/TP6/index.php
deleted file mode 100644
index b67a879a97d4d3f0aed164e39ef40c0517e9d72f..0000000000000000000000000000000000000000
--- a/TP6/index.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-ini_set('display_errors', 1);
-ini_set('display_startup_errors', 1);
-error_reporting(E_ALL);
-
-require_once("app/helpers/config.php");
-require_once("app/helpers/strings.php");
-require_once("app/helpers/views.php");
-require_once("app/models/Database.php");
-
-require_once("controller/ControleurAuteur.php");
-require_once("controller/ControleurAdherent.php");
-
-require_once("controller/ControleurLivre.php");
-
-Database::connect();
-
-if (empty($_REQUEST["action"])) {
-    echo ControleurAuteur::lireAuteurs();
-} else {
-    // C'est plus long que get_class_methods mais c'est moins sujet à problèmes.
-    switch ($_REQUEST["action"]){
-        case "lireAuteur":
-            echo ControleurAuteur::lireAuteur();
-            break;
-        case "lireAuteurs":
-            echo ControleurAuteur::lireAuteurs();
-            break;
-        case "creerObjet":
-            echo ControleurObjet::creerObjet();
-            break;
-        case "lireAdherent":
-            echo ControleurAdherent::lireAdherent();
-            break;
-        case "lireAdherents":
-            echo ControleurAdherent::lireAdherents();
-            break;
-        case "lireLivre":
-            echo ControleurLivre::lireLivre();
-            break;
-        case "lireLivres":
-            echo ControleurLivre::lireLivres();
-            break;
-        default:
-            echo ControleurAuteur::lireAuteur();
-            break;
-    }
-}
diff --git a/TP6/models/Adherent.php b/TP6/models/Adherent.php
deleted file mode 100644
index 58668a7f6f7f91b275d599571e2b97ed9d5a928e..0000000000000000000000000000000000000000
--- a/TP6/models/Adherent.php
+++ /dev/null
@@ -1,104 +0,0 @@
-<?php
-require_once "Objet.php";
-
-class Adherent extends Objet
-{
-    protected string $login;
-    protected string $mdp;
-    protected string $nomAdherent;
-    protected string $prenomAdherent;
-    protected string $email;
-    protected DateTime $dateAdhesion;
-    protected int $numCategorie;
-
-    /**
-     * @param string $login
-     * @param string $mdp
-     * @param string $nomAdherent
-     * @param string $prenomAdherent
-     * @param string $email
-     * @param DateTime $dateAdhesion
-     * @param int $numCategorie
-     */
-    public function __construct(string $login, string $mdp, string $nomAdherent, string $prenomAdherent, string $email, DateTime $dateAdhesion, int $numCategorie)
-    {
-        $this->login = $login;
-        $this->mdp = $mdp;
-        $this->nomAdherent = $nomAdherent;
-        $this->prenomAdherent = $prenomAdherent;
-        $this->email = $email;
-        $this->dateAdhesion = $dateAdhesion;
-        $this->numCategorie = $numCategorie;
-    }
-
-    /**
-     * @return array
-     * @throws Exception
-     */
-    public static function getAllAdherents(): array
-    {
-        // écriture de la requête
-        $requete = "SELECT * FROM Adherent;";
-        // envoi de la requête et stockage de la réponse
-        $resultat = Database::pdo()->query($requete);
-        // traitement de la réponse
-        $resultat->setFetchmode(PDO::FETCH_ASSOC);
-        $resultat = $resultat->fetchAll();
-
-        $tableau = array();
-        foreach ($resultat as $row){
-            $tableau[] = new Adherent($row['login'],
-                $row['mdp'],
-                $row['nomAdherent'],
-                $row['prenomAdherent'],
-                $row['email'],
-                new DateTime($row['dateAdhesion']),
-                $row['numCategorie']);
-        }
-        return $tableau;
-    }
-
-    /**
-     * Trouve un adhérent selon son login unique.
-     * @param $login
-     * @return Adherent
-     * @throws Exception
-     */
-    public static function getAdherentByLogin($login) : Adherent
-    {
-        // écriture de la requête
-        $requetePreparee = "SELECT * FROM Adherent WHERE login = :login;";
-        $req_prep = Database::pdo()->prepare($requetePreparee);
-        // le tableau des valeurs
-        $valeurs = array("login" => $login);
-        $response = null;
-        try {
-            // envoi de la requête
-            $req_prep->execute($valeurs);
-            // traitement de la réponse
-            $req_prep->setFetchmode(PDO::FETCH_ASSOC);
-            // récupération de l'auteur
-            $row = $req_prep->fetch();
-            $response = new Adherent($row['login'],
-                $row['mdp'],
-                $row['nomAdherent'],
-                $row['prenomAdherent'],
-                $row['email'],
-                new DateTime($row['dateAdhesion']),
-                $row['numCategorie']);
-
-        } catch (PDOException $e) {
-            echo $e->getMessage();
-        }
-        return $response;
-    }
-
-    /**
-     * @return string
-     */
-    public function afficher(): string
-    {
-        return "<p>" . $this->prenomAdherent . " " . $this->nomAdherent . " a rejoint le "
-            .$this->dateAdhesion->format('Y-m-d H:i:s');
-    }
-}
\ No newline at end of file
diff --git a/TP6/models/Categorie.php b/TP6/models/Categorie.php
deleted file mode 100644
index cc90eab92b835a565e0cfa153aae7225cd447326..0000000000000000000000000000000000000000
--- a/TP6/models/Categorie.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-
-/**
- *
- */
-class Categorie
-{
-    private int $numCategorie;
-    private string $libelle;
-    private int $nbLivresAutorises;
-
-    /**
-     * @param int $numCategorie
-     * @param string $libelle
-     * @param int $nbLivresAutorises
-     */
-    public function __construct(int $numCategorie, string $libelle, int $nbLivresAutorises)
-    {
-        $this->numCategorie = $numCategorie;
-        $this->libelle = $libelle;
-        $this->nbLivresAutorises = $nbLivresAutorises;
-    }
-
-    /**
-     * @return int
-     */
-    public function getNumCategorie(): int
-    {
-        return $this->numCategorie;
-    }
-
-    /**
-     * @param int $numCategorie
-     */
-    public function setNumCategorie(int $numCategorie): void
-    {
-        $this->numCategorie = $numCategorie;
-    }
-
-    /**
-     * @return string
-     */
-    public function getLibelle(): string
-    {
-        return $this->libelle;
-    }
-
-    /**
-     * @param string $libelle
-     */
-    public function setLibelle(string $libelle): void
-    {
-        $this->libelle = $libelle;
-    }
-
-    /**
-     * @return int
-     */
-    public function getNbLivresAutorises(): int
-    {
-        return $this->nbLivresAutorises;
-    }
-
-    /**
-     * @param int $nbLivresAutorises
-     */
-    public function setNbLivresAutorises(int $nbLivresAutorises): void
-    {
-        $this->nbLivresAutorises = $nbLivresAutorises;
-    }
-
-    /**
-     * @return void
-     */
-    public function afficher(): void{
-        echo "<p>Le livre" . $this->libelle . " est autorisé " . $this->nbLivresAutorises . " fois.</p>";
-    }
-}
\ No newline at end of file
diff --git a/TP6/models/DateEmprunt.php b/TP6/models/DateEmprunt.php
deleted file mode 100644
index c8aef9679609f8cbbb69a82be13c8cf37ab26c28..0000000000000000000000000000000000000000
--- a/TP6/models/DateEmprunt.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-class DateEmprunt
-{
-    private int $numDateEmprunt;
-    private DateTime $dateEmrpunt;
-
-    /**
-     * @return int
-     */
-    public function getNumDateEmprunt(): int
-    {
-        return $this->numDateEmprunt;
-    }
-
-    /**
-     * @param int $numDateEmprunt
-     */
-    public function setNumDateEmprunt(int $numDateEmprunt): void
-    {
-        $this->numDateEmprunt = $numDateEmprunt;
-    }
-
-    /**
-     * @return DateTime
-     */
-    public function getDateEmrpunt(): DateTime
-    {
-        return $this->dateEmrpunt;
-    }
-
-    /**
-     * @param DateTime $dateEmrpunt
-     */
-    public function setDateEmrpunt(DateTime $dateEmrpunt): void
-    {
-        $this->dateEmrpunt = $dateEmrpunt;
-    }
-
-
-}
\ No newline at end of file
diff --git a/TP6/models/Genre.php b/TP6/models/Genre.php
deleted file mode 100644
index 2c953d485903e032e9c2d92a3c52af154d32d8ce..0000000000000000000000000000000000000000
--- a/TP6/models/Genre.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-class Genre
-{
-    private int $numGenre;
-    private string $intitule;
-
-    /**
-     * @param int $numGenre
-     * @param string $intitule
-     */
-    public function __construct(int $numGenre, string $intitule)
-    {
-        $this->numGenre = $numGenre;
-        $this->intitule = $intitule;
-    }
-
-    /**
-     * @return int
-     */
-    public function getNumGenre(): int
-    {
-        return $this->numGenre;
-    }
-
-    /**
-     * @param int $numGenre
-     */
-    public function setNumGenre(int $numGenre): void
-    {
-        $this->numGenre = $numGenre;
-    }
-
-    /**
-     * @return string
-     */
-    public function getIntitule(): string
-    {
-        return $this->intitule;
-    }
-
-    /**
-     * @param string $intitule
-     */
-    public function setIntitule(string $intitule): void
-    {
-        $this->intitule = $intitule;
-    }
-}
\ No newline at end of file
diff --git a/TP6/models/Livre.php b/TP6/models/Livre.php
deleted file mode 100644
index bde6024f752931bccd03f7fef748ea6955b78cea..0000000000000000000000000000000000000000
--- a/TP6/models/Livre.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-require_once "Objet.php";
-
-class Livre extends Objet
-{
-    protected int $numLivre;
-    protected string $titre;
-    protected int $anneeParution;
-    protected int $numGenre;
-
-    /**
-     * @param int $numLivre
-     * @param string $titre
-     * @param int $anneeParution
-     * @param int $numGenre
-     */
-    public function __construct(int $numLivre, string $titre, int $anneeParution, int $numGenre)
-    {
-        $this->numLivre = $numLivre;
-        $this->titre = $titre;
-        $this->anneeParution = $anneeParution;
-        $this->numGenre = $numGenre;
-    }
-
-    /**
-     * @return array
-     */
-    public static function getAllLivres(): array
-    {
-        $query = Database::pdo()->query("SELECT * FROM Livre");
-        $query->setFetchmode(PDO::FETCH_ASSOC);
-        $queryResult = $query->fetchAll();
-
-        $tableau = array();
-        foreach ($queryResult as $row) {
-            $tableau[] = new Livre($row['numLivre'],
-                $row['titre'],
-                $row['anneeParution'],
-                $row['numGenre']);
-        }
-        return $tableau;
-    }
-
-    /**
-     * @param int $numLivre
-     * @return Livre
-     */
-    public static function getLivreByNumLivre(int $numLivre): Livre
-    {
-        $query = Database::pdo()->prepare("SELECT * FROM Livre WHERE numLivre = :numLivre");
-        $response = null;
-        try {
-            // envoi de la requête
-            $query->execute(['numLivre' => $numLivre]);
-            $query->setFetchmode(PDO::FETCH_ASSOC);
-            $queryResult = $query->fetch();
-            $response = new Livre($queryResult['numLivre'],
-                $queryResult['titre'],
-                $queryResult['anneeParution'],
-                $queryResult['numGenre']);
-        } catch (PDOException $e) {
-            echo $e->getMessage();
-        }
-        return $response;
-    }
-
-    /**
-     * @return string
-     */
-    public function afficher(): string
-    {
-        return "<p>" . $this->titre . " est paru en "
-            . $this->anneeParution;
-    }
-}
\ No newline at end of file
diff --git a/TP6/models/Nationalite.php b/TP6/models/Nationalite.php
deleted file mode 100644
index aee6ad6413dab3ca78624c8d508dab4189f71951..0000000000000000000000000000000000000000
--- a/TP6/models/Nationalite.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-class Nationalite
-{
-    private int $numNationalite;
-    private string $pays;
-    private string $abrege;
-
-    /**
-     * @param int $numNationalite
-     * @param string $pays
-     * @param string $abrege
-     */
-    public function __construct(int $numNationalite, string $pays, string $abrege)
-    {
-        $this->numNationalite = $numNationalite;
-        $this->pays = $pays;
-        $this->abrege = $abrege;
-    }
-
-    /**
-     * @return int
-     */
-    public function getNumNationalite(): int
-    {
-        return $this->numNationalite;
-    }
-
-    /**
-     * @param int $numNationalite
-     */
-    public function setNumNationalite(int $numNationalite): void
-    {
-        $this->numNationalite = $numNationalite;
-    }
-}
\ No newline at end of file
diff --git a/TP7_web.pdf b/TP7_web.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..62a5cd86a149d594867cfc414bed5b186d5cc683
Binary files /dev/null and b/TP7_web.pdf differ
diff --git a/app/helpers/config.php b/app/helpers/config.php
new file mode 100644
index 0000000000000000000000000000000000000000..cfc442cb10283dd75c858729b77f956a55046ad0
--- /dev/null
+++ b/app/helpers/config.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Permet de récupérer un paramètre du fichier config.php
+ * @param string $configIndex
+ * @return mixed
+ */
+function config(string $configIndex) : mixed
+{
+    $configPath = getcwd() . "/config.php";
+    if(file_exists($configPath)){
+        $config = include $configPath;
+        $indexes = explode(".", $configIndex);
+
+        $tempConf = $config;
+        foreach ($indexes as $index){
+            if(array_key_exists($index, $tempConf)){
+                $tempConf = $tempConf[$index];
+            }else{
+                return null;
+            }
+        }
+        return $tempConf;
+    } else {
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/TP6/app/helpers/strings.php b/app/helpers/strings.php
similarity index 100%
rename from TP6/app/helpers/strings.php
rename to app/helpers/strings.php
diff --git a/TP4/ex1/app/helpers/views.php b/app/helpers/views.php
similarity index 100%
rename from TP4/ex1/app/helpers/views.php
rename to app/helpers/views.php
diff --git a/TP4/ex1/app/models/Database.php b/app/models/Database.php
similarity index 55%
rename from TP4/ex1/app/models/Database.php
rename to app/models/Database.php
index 570f4a95f13f261ef74675375eb89a45d95a3348..0cbec62551476146720e827232a492fead5dd07f 100644
--- a/TP4/ex1/app/models/Database.php
+++ b/app/models/Database.php
@@ -3,29 +3,25 @@
 class Database
 {
     // les attributs static caractéristiques de la connexion
-    static private $hostname = 'localhost';
-    static private $database = 'iut-dev';
-    static private $login = 'iut-dev-user';
-    static private $password = 'p73i74KAV8lami2iyIpehE5ozic8GA';
 
-    static private $tabUTF8 = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");
+    static private array $tabUTF8 = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");
 
     // l'attribut static qui matérialisera la connexion
-    static private $pdo;
+    static private PDO $pdo;
 
     // le getter public de cet attribut
-    static public function pdo()
+    static public function pdo(): PDO
     {
         return self::$pdo;
     }
 
     // la fonction static de connexion qui initialise $pdo et lance la tentative de connexion
-    static public function connect()
+    static public function connect(): void
     {
-        $hostname = config("DB_HOST");
-        $database = config("DB_NAME");
-        $login = config("DB_LOGIN");
-        $password = config("DB_PASSWORD");
+        $hostname = config("database.host");
+        $database = config("database.name");
+        $login = config("database.login");
+        $password = config("database.password");
         $t = self::$tabUTF8;
         try {
             self::$pdo = new PDO("mysql:host=$hostname;dbname=$database", $login, $password, $t);
@@ -36,4 +32,4 @@ class Database
     }
 }
 
-?>
+
diff --git a/TP6/app/models/View.php b/app/models/View.php
similarity index 99%
rename from TP6/app/models/View.php
rename to app/models/View.php
index 026feb9efcf27c6d9a360a29ce7a996d7b75f7a1..6835b80cc422f442dc5533f9bd7052d2d136cf84 100644
--- a/TP6/app/models/View.php
+++ b/app/models/View.php
@@ -29,7 +29,6 @@ class View
     /**
      * S'occuper de remplir la template
      * @param string $viewPath
-     * @param array $args
      * @return string
      */
     public static function parse(string $viewPath): string
diff --git a/config.php b/config.php
new file mode 100644
index 0000000000000000000000000000000000000000..c2af7586f4148209e51c762b1b831331849ffe2d
--- /dev/null
+++ b/config.php
@@ -0,0 +1,7 @@
+<?php
+return ['database' => [
+    'host' => 'localhost',
+    'name' => 'iut-dev',
+    'login' => 'iut-dev-user',
+    'password' => 'p73i74KAV8lami2iyIpehE5ozic8GA'
+]];
\ No newline at end of file
diff --git a/TP5/controller/ControleurAdherent.php b/controller/ControleurAdherent.php
similarity index 87%
rename from TP5/controller/ControleurAdherent.php
rename to controller/ControleurAdherent.php
index 90089f045c7d2b45c8442a1841e820f7e8963532..390ab02eb069c8b2897ffcaf5f1d0350ee89cd83 100644
--- a/TP5/controller/ControleurAdherent.php
+++ b/controller/ControleurAdherent.php
@@ -16,8 +16,8 @@ class ControleurAdherent extends ControleurObjet
         $objects = [];
         foreach ($adherents as $adherent){
             $object['title'] = $adherent->prenomAdherent . " " . $adherent->nomAdherent;
-            $object['desc'] = "ID: {$adherent->login}<br>Date d'adhésion: {$adherent->dateAdhesion->format("Y-m-d")}";
-            $object['url'] = "index.php?action=lireAdherent&login={$adherent->login}";
+            $object['desc'] = "ID: $adherent->login<br>Date d'adhésion: {$adherent->dateAdhesion->format("Y-m-d")}";
+            $object['url'] = "index.php?action=lireAdherent&login=$adherent->login";
             $objects[] = $object;
         }
         return view('data-grid', [
@@ -39,7 +39,7 @@ class ControleurAdherent extends ControleurObjet
         }
         $adherent = Adherent::getAdherentByLogin($_GET["login"]);
         return view('simple-data', [
-            'pageTitle' => 'Information du livre',
+            'pageTitle' => "Information de l'adhérent",
             'pageContent' => $adherent->afficher()
         ]);
     }
diff --git a/TP6/controller/ControleurAuteur.php b/controller/ControleurAuteur.php
similarity index 86%
rename from TP6/controller/ControleurAuteur.php
rename to controller/ControleurAuteur.php
index 2fadad633daeebdf6ab182a228d6a4e70cd312ab..99e02c4fab4572abefb1894322b33b0ebed99edb 100644
--- a/TP6/controller/ControleurAuteur.php
+++ b/controller/ControleurAuteur.php
@@ -16,8 +16,8 @@ class ControleurAuteur extends ControleurObjet
         $objects = [];
         foreach ($auteurs as $auteur){
             $object['title'] = $auteur->prenom . " " . $auteur->nom;
-            $object['desc'] = "ID: {$auteur->numAuteur}<br>Date de naissance: {$auteur->anneeNaissance}";
-            $object['url'] = "index.php?action=lireAuteur&numAuteur={$auteur->numAuteur}";
+            $object['desc'] = "ID: $auteur->numAuteur<br>Date de naissance: $auteur->anneeNaissance";
+            $object['url'] = "index.php?action=lireAuteur&numAuteur=$auteur->numAuteur";
             $objects[] = $object;
         }
         return view('data-grid', [
@@ -38,7 +38,7 @@ class ControleurAuteur extends ControleurObjet
         }
         $auteur = Auteur::getAuteurByNum($_GET["numAuteur"]);
         return view('simple-data', [
-            'pageTitle' => 'Information du livre',
+            'pageTitle' => "Information de l'auteur",
             'pageContent' => $auteur->afficher()
         ]);
     }
diff --git a/TP5/controller/ControleurLivre.php b/controller/ControleurLivre.php
similarity index 91%
rename from TP5/controller/ControleurLivre.php
rename to controller/ControleurLivre.php
index 0f0f651cfe0285eed9b76e2c007d300f21e3b637..f3ab48a74dfefd34452e8ce5815f60f36bc63fca 100644
--- a/TP5/controller/ControleurLivre.php
+++ b/controller/ControleurLivre.php
@@ -17,8 +17,8 @@ class ControleurLivre extends ControleurObjet
         $objects = [];
         foreach ($livres as $livre){
             $object['title'] = $livre->titre;
-            $object['desc'] = "ID: {$livre->numLivre}<br>Année de parution: {$livre->anneeParution}";
-            $object['url'] = "index.php?action=lireLivre&numLivre={$livre->numLivre}";
+            $object['desc'] = "ID: $livre->numLivre<br>Année de parution: $livre->anneeParution";
+            $object['url'] = "index.php?action=lireLivre&numLivre=$livre->numLivre";
             $objects[] = $object;
         }
         return view('data-grid', [
diff --git a/TP6/controller/ControleurObjet.php b/controller/ControleurObjet.php
similarity index 100%
rename from TP6/controller/ControleurObjet.php
rename to controller/ControleurObjet.php
diff --git a/index.php b/index.php
new file mode 100644
index 0000000000000000000000000000000000000000..cb941eeda0d1c1e0084eeaeadd0059111049780e
--- /dev/null
+++ b/index.php
@@ -0,0 +1,36 @@
+<?php
+ini_set('display_errors', 1);
+ini_set('display_startup_errors', 1);
+error_reporting(E_ALL);
+
+require_once("app/helpers/config.php");
+require_once("app/helpers/strings.php");
+require_once("app/helpers/views.php");
+require_once("app/models/Database.php");
+
+require_once("controller/ControleurAuteur.php");
+require_once("controller/ControleurAdherent.php");
+
+require_once("controller/ControleurLivre.php");
+
+Database::connect();
+
+if (empty($_REQUEST["action"])) {
+    echo ControleurAuteur::lireAuteurs();
+} else {
+    // C'est plus long que get_class_methods mais c'est moins sujet à problèmes.
+    try {
+        echo match ($_REQUEST["action"]) {
+            "lireAuteur" => ControleurAuteur::lireAuteur(),
+            "lireAuteurs" => ControleurAuteur::lireAuteurs(),
+            "creerObjet" => ControleurObjet::creerObjet(),
+            "lireAdherent" => ControleurAdherent::lireAdherent(),
+            "lireAdherents" => ControleurAdherent::lireAdherents(),
+            "lireLivre" => ControleurLivre::lireLivre(),
+            "lireLivres" => ControleurLivre::lireLivres(),
+            default => ControleurAuteur::lireAuteur(),
+        };
+    } catch (Exception $e) {
+        echo "Erreur lors de l'affichage de la page: " . $e->getMessage();
+    }
+}
diff --git a/TP4/ex1/models/Adherent.php b/models/Adherent.php
similarity index 100%
rename from TP4/ex1/models/Adherent.php
rename to models/Adherent.php
diff --git a/TP6/models/Auteur.php b/models/Auteur.php
similarity index 100%
rename from TP6/models/Auteur.php
rename to models/Auteur.php
diff --git a/TP4/ex1/models/Categorie.php b/models/Categorie.php
similarity index 100%
rename from TP4/ex1/models/Categorie.php
rename to models/Categorie.php
diff --git a/TP4/ex1/models/DateEmprunt.php b/models/DateEmprunt.php
similarity index 100%
rename from TP4/ex1/models/DateEmprunt.php
rename to models/DateEmprunt.php
diff --git a/TP4/ex1/models/Genre.php b/models/Genre.php
similarity index 100%
rename from TP4/ex1/models/Genre.php
rename to models/Genre.php
diff --git a/TP4/ex1/models/Livre.php b/models/Livre.php
similarity index 100%
rename from TP4/ex1/models/Livre.php
rename to models/Livre.php
diff --git a/TP4/ex1/models/Nationalite.php b/models/Nationalite.php
similarity index 100%
rename from TP4/ex1/models/Nationalite.php
rename to models/Nationalite.php
diff --git a/TP6/models/Objet.php b/models/Objet.php
similarity index 92%
rename from TP6/models/Objet.php
rename to models/Objet.php
index f770e2b8cf6d77b2b1f9b6d8e944f4de73272a27..ad2df9037c695947eb8ef16a47b85eb4d0c24f1e 100644
--- a/TP6/models/Objet.php
+++ b/models/Objet.php
@@ -54,11 +54,11 @@ class Objet
 
         // Maintenant on va vérifier que la table existe
         try{
-            $tableExistsQuery = Database::pdo()->query("SELECT 1 FROM {$tableName} LIMIT 1");
+            $tableExistsQuery = Database::pdo()->query("SELECT 1 FROM $tableName LIMIT 1");
         } catch (PDOException $e) {
             return [
                 "status" => "fail",
-                "message" => "La table {$tableName} ne semble pas exister.",
+                "message" => "La table $tableName ne semble pas exister.",
                 "pdoError" => $e
             ];
         }
@@ -76,7 +76,7 @@ class Objet
         }
 
         // On prépare la requête
-        $queryString = ("INSERT INTO {$tableName} (" . implode(", ", array_keys($columns))
+        $queryString = ("INSERT INTO $tableName (" . implode(", ", array_keys($columns))
             . ") VALUES (:" . implode(", :", array_keys($columns)) . ")");
         $insertQuery = Database::pdo()->prepare($queryString);
         try{
@@ -108,7 +108,7 @@ class Objet
             ];
         }else{
             try{
-                $query = Database::pdo()->query("DESCRIBE {$tableName}");
+                $query = Database::pdo()->query("DESCRIBE $tableName");
                 $columns = $query->fetchAll(PDO::FETCH_ASSOC);
             } catch (PDOException $e) {
                 return [
diff --git a/TP6/resources/css/styles.css b/resources/css/styles.css
similarity index 100%
rename from TP6/resources/css/styles.css
rename to resources/css/styles.css
diff --git a/TP6/resources/views/components/navbar.php b/resources/views/components/navbar.php
similarity index 97%
rename from TP6/resources/views/components/navbar.php
rename to resources/views/components/navbar.php
index 33f52ea807b338ae6671a415d46888c868f7f378..00c80594d39d8b534bc244b8a02c9edb16ee63a6 100644
--- a/TP6/resources/views/components/navbar.php
+++ b/resources/views/components/navbar.php
@@ -27,7 +27,7 @@
 <script type="text/javascript">
     const urlParams = new URLSearchParams(window.location.search);
     let links = document.querySelectorAll('a[href="?action='+urlParams.get("action")+'"]');
-    for (var i=0; i<links.length; i++){
+    for (let i=0; i<links.length; i++){
         links[i].classList.add("active");
     }
 </script>
\ No newline at end of file
diff --git a/TP6/resources/views/data-grid.php b/resources/views/data-grid.php
similarity index 100%
rename from TP6/resources/views/data-grid.php
rename to resources/views/data-grid.php
diff --git a/TP6/resources/views/formulaire-creation-objet.php b/resources/views/formulaire-creation-objet.php
similarity index 100%
rename from TP6/resources/views/formulaire-creation-objet.php
rename to resources/views/formulaire-creation-objet.php
diff --git a/TP6/resources/views/layouts/page-layout.php b/resources/views/layouts/page-layout.php
similarity index 100%
rename from TP6/resources/views/layouts/page-layout.php
rename to resources/views/layouts/page-layout.php
diff --git a/TP6/resources/views/simple-data.php b/resources/views/simple-data.php
similarity index 100%
rename from TP6/resources/views/simple-data.php
rename to resources/views/simple-data.php