diff --git a/app/helpers/views.php b/app/helpers/views.php
index 2546cdb1d76d4592e6a83c8b497914350cacb3a7..c97d666851d551946b43d909e378aaeaa5f3a51e 100644
--- a/app/helpers/views.php
+++ b/app/helpers/views.php
@@ -9,4 +9,30 @@ require_once("app/models/View.php");
 function view(string $viewName, array $args = []): string
 {
     return View::load($viewName, $args);
+}
+
+/**
+ * Affiche la page de retour de status.
+ * @param string $pageTitle
+ * @param string $status
+ * @param string $messageTitle
+ * @param string $messageContent
+ * @return string
+ */
+function returnPage(string $pageTitle, string $status, string $messageContent): string
+{
+    if($status == "fail"){
+        $status = "danger";
+        $messageTitle = "Erreur";
+    }else{
+        $messageTitle = "Succès";
+    }
+    return view('return-message', [
+        'pageTitle' => $pageTitle,
+        'returnMessage' => [
+            "status" => $status,
+            "title" => $messageTitle,
+            "message" => $messageContent
+        ]
+    ]);
 }
\ No newline at end of file
diff --git a/app/models/View.php b/app/models/View.php
index 6835b80cc422f442dc5533f9bd7052d2d136cf84..22e281585c93f33762dfb9b81ee8510dfdc39183 100644
--- a/app/models/View.php
+++ b/app/models/View.php
@@ -22,7 +22,11 @@ class View
         if(file_exists($viewPath)){
             return self::render(self::parse($viewPath), $args);
         }else{
-            return "La vue " . $viewName . " est introuvable.";
+            return returnPage(
+                "Erreur lors de l'affichage de la page",
+                "fail",
+                "La vue $viewName est introuvable !"
+            );
         }
     }
 
diff --git a/controller/ControleurAdherent.php b/controller/ControleurAdherent.php
index 1851cebf743b0341d06a06a3a630222a37d3c18f..54fd5911385a03c91f85540c9d036048ce7a97a0 100644
--- a/controller/ControleurAdherent.php
+++ b/controller/ControleurAdherent.php
@@ -5,6 +5,7 @@ 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
@@ -14,7 +15,7 @@ class ControleurAdherent extends ControleurObjet
     {
         $adherents = Adherent::getAllAdherents();
         $objects = [];
-        foreach ($adherents as $adherent){
+        foreach ($adherents as $adherent) {
             $object['idName'] = "login";
             $object['idValue'] = $adherent->login;
             $object['type'] = "Adherent";
@@ -38,7 +39,9 @@ class ControleurAdherent extends ControleurObjet
     public static function lireAdherent(): string
     {
         if (empty($_GET["login"])) {
-            die("Le paramètre login n'est pas spécifié.");
+            return returnPage("Information de l'adhérent",
+                "fail",
+                "Il manque le paramètre login dans l'url.");
         }
         $adherent = Adherent::getAdherentByLogin($_GET["login"]);
         return view('simple-data', [
diff --git a/controller/ControleurAuteur.php b/controller/ControleurAuteur.php
index 2dec0caf6fa90c4a64fd613579f4f05a015e67aa..045b3723b8e2c4332bbee301b1aed211bbd49d9f 100644
--- a/controller/ControleurAuteur.php
+++ b/controller/ControleurAuteur.php
@@ -41,7 +41,9 @@ class ControleurAuteur extends ControleurObjet
     public static function lireAuteur(): string
     {
         if (empty($_GET["numAuteur"])) {
-            die("Le paramètre numAuteur n'est pas spécifié.");
+            return returnPage("Information de l'auteur",
+                "fail",
+                "Il manque le paramètre numAuteur dans l'url.");
         }
         $auteur = Auteur::getAuteurByNum($_GET["numAuteur"]);
         return view('simple-data', [
@@ -50,18 +52,27 @@ class ControleurAuteur extends ControleurObjet
         ]);
     }
 
+    /**
+     * Charge la page pour définir les nationalités d'un auteur
+     * @return string
+     * @throws ErrorException
+     */
     public static function definirNationalites(): string
     {
-        if (!empty($_GET["numAuteur"])){
+        if (!empty($_GET["numAuteur"])) {
             $nationalities = Nationalite::getAllNationalite();
             $autorNationalities = Nationalite::getNationalitesByNumAuteur($_GET["numAuteur"]);
             $autor = Auteur::getAuteurByNum($_GET["numAuteur"]);
 
+            if (empty($autor)) {
+                throw new ErrorException("L'auteur n'existe pas.");
+            }
+
             $nationalityList = [];
-            foreach ($nationalities as $nationality){
+            foreach ($nationalities as $nationality) {
                 $isHisNationality = false;
-                foreach ($autorNationalities as $autorNationality){
-                    if($nationality->numNationalite == $autorNationality->numNationalite){
+                foreach ($autorNationalities as $autorNationality) {
+                    if ($nationality->numNationalite == $autorNationality->numNationalite) {
                         $isHisNationality = true;
                         break;
                     }
@@ -78,63 +89,48 @@ class ControleurAuteur extends ControleurObjet
                 "nationalityList" => $nationalityList,
                 "autor" => $autor
             ]);
-        }else{
-            return view('return-message', [
-                'pageTitle' => "Définir les nationalités d'un auteur",
-                'returnMessage' => [
-                    "status" => "danger",
-                    "title" => "Erreur",
-                    "message" => "Il manque des paramètres dans l'url"
-                ]
-            ]);
+        } else {
+            return returnPage("Définir les nationalités d'un auteur",
+                "fail",
+                "Il manque des paramètres dans l'url.");
         }
     }
 
+    /**
+     * Supprimer une natinalité d'un auteur
+     * @return string
+     * @throws ErrorException
+     */
     public static function supprimerNationaliteAuteur(): string
     {
-        if (!empty($_GET["numNationalite"]) && !empty($_GET["numAuteur"])){
+        if (!empty($_GET["numNationalite"]) && !empty($_GET["numAuteur"])) {
             Auteur::deleteNationaliteForAuteur($_GET["numAuteur"], $_GET["numNationalite"]);
-            return view('return-message', [
-                'pageTitle' => "Supprimer la nationalité d'un auteur",
-                'returnMessage' => [
-                    "status" => "success",
-                    "title" => "Supprimer la nationalité d'un auteur",
-                    "message" => "Suppression de la nationalité réussie."
-                ]
-            ]);
+            return returnPage("Supprimer la nationalité d'un auteur",
+                "success",
+                "Suppression de la nationalité réussie.");
         }
 
-        return view('return-message', [
-            'pageTitle' => "Supprimer la nationalité d'un auteur",
-            'returnMessage' => [
-                "status" => "danger",
-                "title" => "Erreur",
-                "message" => "Il manque des paramètres dans l'url"
-            ]
-        ]);
+        return returnPage("Supprimer la nationalité d'un auteur",
+            "fail",
+            "Il manque des paramètres dans l'url.");
     }
 
+    /**
+     * Ajoute une nationalité à un auteur
+     * @return string
+     * @throws ErrorException
+     */
     public static function ajouterNationaliteAuteur(): string
     {
-        if (!empty($_GET["numNationalite"]) && !empty($_GET["numAuteur"])){
+        if (!empty($_GET["numNationalite"]) && !empty($_GET["numAuteur"])) {
             Auteur::addNationaliteForAuteur($_GET["numAuteur"], $_GET["numNationalite"]);
-            return view('return-message', [
-                'pageTitle' => "Supprimer la nationalité d'un auteur",
-                'returnMessage' => [
-                    "status" => "success",
-                    "title" => "Supprimer la nationalité d'un auteur",
-                    "message" => "Suppression de la nationalité réussie."
-                ]
-            ]);
+            return returnPage("Supprimer la nationalité d'un auteur",
+                "success",
+                "Suppression de la nationalité réussie.");
         }
 
-        return view('return-message', [
-            'pageTitle' => "Supprimer la nationalité d'un auteur",
-            'returnMessage' => [
-                "status" => "danger",
-                "title" => "Erreur",
-                "message" => "Il manque des paramètres dans l'url"
-            ]
-        ]);
+        return returnPage("Supprimer la nationalité d'un auteur",
+            "fail",
+            "Il manque des paramètres dans l'url.");
     }
 }
diff --git a/controller/ControleurLivre.php b/controller/ControleurLivre.php
index bbf8346317692a429c91bdb982469e7057718b87..2d948a851561117d653e20042ceff67adc0e9fbc 100644
--- a/controller/ControleurLivre.php
+++ b/controller/ControleurLivre.php
@@ -42,7 +42,9 @@ class ControleurLivre extends ControleurObjet
     public static function lireLivre(): string
     {
         if (empty($_GET["numLivre"])) {
-            die("Le paramètre numLivre n'est pas spécifié.");
+            return returnPage("Information du livre",
+                "fail",
+                "Il manque le paramètre numLivre dans l'url.");
         }
         $livre = Livre::getLivreByNumLivre($_GET["numLivre"]);
 
@@ -52,18 +54,27 @@ class ControleurLivre extends ControleurObjet
         ]);
     }
 
+    /**
+     * Charge la page pour définir les auteurs.
+     * @return string
+     * @throws ErrorException
+     */
     public static function definirAuteurs(): string
     {
-        if (!empty($_GET["numLivre"])){
+        if (!empty($_GET["numLivre"])) {
             $autors = Auteur::getAllAuteurs();
             $bookAutors = Auteur::getAuteursByNumLivre($_GET["numLivre"]);
             $book = Livre::getLivreByNumLivre($_GET["numLivre"]);
 
+            if (empty($book)) {
+                throw new ErrorException("Le livre n'existe pas.");
+            }
+
             $autorsList = [];
-            foreach ($autors as $auteur){
+            foreach ($autors as $auteur) {
                 $isBookAutor = false;
-                foreach ($bookAutors as $bookAutor){
-                    if($auteur->numAuteur == $bookAutor->numAuteur){
+                foreach ($bookAutors as $bookAutor) {
+                    if ($auteur->numAuteur == $bookAutor->numAuteur) {
                         $isBookAutor = true;
                         break;
                     }
@@ -81,63 +92,51 @@ class ControleurLivre extends ControleurObjet
                 "autorsList" => $autorsList,
                 "book" => $book
             ]);
-        }else{
-            return view('return-message', [
-                'pageTitle' => "Définir les auteurs d'un livre",
-                'returnMessage' => [
-                    "status" => "danger",
-                    "title" => "Erreur",
-                    "message" => "Il manque des paramètres dans l'url"
-                ]
-            ]);
+        } else {
+            return returnPage("Définir les auteurs d'un livre", "fail", "Il manque des paramètres dans l'url.");
         }
     }
 
+    /**
+     * Supprime un auteur du livre
+     * @return string
+     * @throws ErrorException
+     */
     public static function supprimerAuteurDuLivre(): string
     {
-        if (!empty($_GET["numLivre"]) && !empty($_GET["numAuteur"])){
+        if (!empty($_GET["numLivre"]) && !empty($_GET["numAuteur"])) {
             Livre::deleteAuteurForLivre($_GET["numLivre"], $_GET["numAuteur"]);
-            return view('return-message', [
-                'pageTitle' => "Supprimer un auteur d'un livre",
-                'returnMessage' => [
-                    "status" => "success",
-                    "title" => "Supprimer un auteur d'un livre",
-                    "message" => "Suppression de l'auteur réussie."
-                ]
-            ]);
+            return returnPage("Supprimer un auteur d'un livre",
+                "success",
+                "Suppression de l'auteur réussie."
+            );
         }
-
-        return view('return-message', [
-            'pageTitle' => "Supprimer un auteur d'un livre",
-            'returnMessage' => [
-                "status" => "danger",
-                "title" => "Erreur",
-                "message" => "Il manque des paramètres dans l'url"
-            ]
-        ]);
+        return returnPage(
+            "Supprimer un auteur d'un livre",
+            "fail",
+            "Il manque des paramètres dans l'url."
+        );
     }
 
+    /**
+     * Ajoute un auteur à un livre
+     * @return string
+     * @throws ErrorException
+     */
     public static function ajouterAuteurDuLivre(): string
     {
-        if (!empty($_GET["numLivre"]) && !empty($_GET["numAuteur"])){
+        if (!empty($_GET["numLivre"]) && !empty($_GET["numAuteur"])) {
             Livre::addAuteurForLivre($_GET["numLivre"], $_GET["numAuteur"]);
-            return view('return-message', [
-                'pageTitle' => "ajouter un auteur à un livre",
-                'returnMessage' => [
-                    "status" => "success",
-                    "title" => "Supprimer un auteur d'un livre",
-                    "message" => "Suppression de l'auteur réussie."
-                ]
-            ]);
+            return returnPage(
+                "ajouter un auteur à un livre",
+                "success",
+                "Suppression de l'auteur réussie."
+            );
         }
-
-        return view('return-message', [
-            'pageTitle' => "ajouter un auteur à un livre",
-            'returnMessage' => [
-                "status" => "danger",
-                "title" => "Erreur",
-                "message" => "Il manque des paramètres dans l'url"
-            ]
-        ]);
+        return returnPage(
+            "ajouter un auteur à un livre",
+            "fail",
+            "Il manque des paramètres dans l'url."
+        );
     }
 }
\ No newline at end of file
diff --git a/controller/ControleurObjet.php b/controller/ControleurObjet.php
index 6aca10a0a3d1658d2c6276b35125ec083bf78a41..2e1ab55e721ba0a6ad06c495ce08b9648bfbec90 100644
--- a/controller/ControleurObjet.php
+++ b/controller/ControleurObjet.php
@@ -68,6 +68,11 @@ class ControleurObjet
         }
     }
 
+    /**
+     * Modifie un objet de la BDD
+     * @return string
+     * @throws ErrorException
+     */
     public static function modifyObject(): string
     {
         if (!empty($_GET["tableName"]) && !empty($_GET["idName"]) && !empty($_GET["idValue"])) {
@@ -79,30 +84,20 @@ class ControleurObjet
                         'value' => $_GET["idValue"]
                     ]
                 );
-            } catch (ErrorException $e) {
-                return view('return-message', [
-                    'pageTitle' => "Erreur lors de la récupération de l'objet {$_GET["tableName"]}",
-                    'returnMessage' => [
-                        "status" => "danger",
-                        "title" => "Erreur",
-                        "message" => $e->getMessage()
-                    ]
-                ]);
-            }
 
-            try {
-                $objectTableDesc = Objet::describeObject($_GET["tableName"]);
+                if (empty($object)) {
+                    throw new ErrorException("L'objet n'existe pas.");
+                }
             } catch (ErrorException $e) {
-                return view('return-message', [
-                    'pageTitle' => "Erreur lors de la récupération des spécifications de l'objet {$_GET["tableName"]}",
-                    'returnMessage' => [
-                        "status" => "danger",
-                        "title" => "Erreur",
-                        "message" => $e->getMessage()
-                    ]
-                ]);
+                return returnPage(
+                    "Erreur lors de la récupération de l'objet {$_GET["tableName"]}",
+                    "fail",
+                    $e->getMessage()
+                );
             }
 
+            $objectTableDesc = Objet::describeObject($_GET["tableName"]);
+
             $sqlToInputType = [
                 "int" => "number",
                 "varchar" => "text",
@@ -158,75 +153,52 @@ class ControleurObjet
                     $postData[$index] = $value;
                 }
             }
-            try {
-                Objet::modifyObjectById($_POST["tableName"],
-                    [
-                        "name" => $_POST["idName"],
-                        "value" => $_POST["idValue"]
-                    ],
-                    $postData);
-            } catch (ErrorException $e) {
-                return view('return-message', [
-                    'pageTitle' => "Erreur lors de la modification de l'objet {$_GET["tableName"]}",
-                    'returnMessage' => [
-                        "status" => "danger",
-                        "title" => "Erreur",
-                        "message" => $e->getMessage()
-                    ]
-                ]);
-            }
 
-            return view('return-message', [
-                'pageTitle' => "Modification d'un(e) {$_POST["tableName"]}",
-                'returnMessage' => [
-                    "status" => "success",
-                    "message" => "Modification réussie !"
-                ]
-            ]);
+            Objet::modifyObjectById($_POST["tableName"],
+                [
+                    "name" => $_POST["idName"],
+                    "value" => $_POST["idValue"]
+                ],
+                $postData);
+
+            return returnPage(
+                "Modification d'un(e) {$_POST["tableName"]}",
+                "fail",
+                "Modification réussie !"
+            );
         }
-        return view('simple-data', [
-            'pageTitle' => "Erreur",
-            'pageContent' => "Il manque des paramètres dans l'url."
-        ]);
+        return returnPage(
+            "Modification d'un objet",
+            "fail",
+            "Il manque des paramètres dans l'url."
+        );
     }
 
+    /**
+     * Supprime un objet de la BDD
+     * @return string
+     * @throws ErrorException
+     */
     public static function supprimerObjet(): string
     {
         $pageTitle = "Suppression d'un(e) {$_GET["tableName"]}";
         if (!empty($_GET["tableName"]) && !empty($_GET["idName"]) && !empty($_GET["idValue"])) {
-            try {
-                Objet::deleteObjectById($_GET["tableName"],
-                    [
-                        "name" => $_GET["idName"],
-                        "value" => $_GET["idValue"]
-                    ]);
-            } catch (ErrorException $e) {
-                return view('return-message', [
-                    'pageTitle' => "Erreur lors de la suppression de l'objet {$_GET["tableName"]}",
-                    'returnMessage' => [
-                        "status" => "danger",
-                        "title" => "Erreur",
-                        "message" => $e->getMessage()
-                    ]
+            Objet::deleteObjectById($_GET["tableName"],
+                [
+                    "name" => $_GET["idName"],
+                    "value" => $_GET["idValue"]
                 ]);
-            }
 
-            return view('return-message', [
-                'pageTitle' => "Suppression d'un objet",
-                'returnMessage' => [
-                    "status" => "success",
-                    "title" => $pageTitle,
-                    "message" => "{$_GET["tableName"]} supprimé avec succès !"
-                ]
-            ]);
+            return returnPage(
+                $pageTitle,
+                "success",
+                "{$_GET["tableName"]} supprimé avec succès !"
+            );
         }
-        return view('return-message', [
-            'pageTitle' => "Suppression d'un objet",
-            'returnMessage' => [
-                "status" => "danger",
-                "title" => "Erreur",
-                "message" => "Il manque des paramètres dans l'url"
-            ]
-        ]);
+        return returnPage(
+            $pageTitle,
+            "fail",
+            "Il manque des paramètres dans l'url."
+        );
     }
 }
\ No newline at end of file
diff --git a/index.php b/index.php
index c1e688fee86bfaeaed1514d261e8a68ca8bddc52..7c006de40b839bc0704c9f78e6babeecc61ac8fa 100644
--- a/index.php
+++ b/index.php
@@ -40,6 +40,10 @@ if (empty($_REQUEST["action"])) {
             default          => ControleurAuteur::lireAuteur(),
         };
     } catch (Exception $e) {
-        echo "Erreur lors de l'affichage de la page: " . $e->getMessage();
+        echo returnPage(
+            "Erreur lors de l'affichage de la page",
+            "fail",
+            $e->getMessage()
+        );
     }
 }
diff --git a/models/Adherent.php b/models/Adherent.php
index 58668a7f6f7f91b275d599571e2b97ed9d5a928e..f54fbdefdc79667d1abd4f1d3d4660d084e35dbb 100644
--- a/models/Adherent.php
+++ b/models/Adherent.php
@@ -46,7 +46,7 @@ class Adherent extends Objet
         $resultat = $resultat->fetchAll();
 
         $tableau = array();
-        foreach ($resultat as $row){
+        foreach ($resultat as $row) {
             $tableau[] = new Adherent($row['login'],
                 $row['mdp'],
                 $row['nomAdherent'],
@@ -64,7 +64,7 @@ class Adherent extends Objet
      * @return Adherent
      * @throws Exception
      */
-    public static function getAdherentByLogin($login) : Adherent
+    public static function getAdherentByLogin($login): Adherent
     {
         // écriture de la requête
         $requetePreparee = "SELECT * FROM Adherent WHERE login = :login;";
@@ -99,6 +99,6 @@ class Adherent extends Objet
     public function afficher(): string
     {
         return "<p>" . $this->prenomAdherent . " " . $this->nomAdherent . " a rejoint le "
-            .$this->dateAdhesion->format('Y-m-d H:i:s');
+            . $this->dateAdhesion->format('Y-m-d H:i:s');
     }
 }
\ No newline at end of file
diff --git a/models/Auteur.php b/models/Auteur.php
index 5fb9abace8a9527325d3eb80df246cdc57644304..912c8818b3d4977568cd34f967909dfeab68ef13 100644
--- a/models/Auteur.php
+++ b/models/Auteur.php
@@ -3,8 +3,8 @@ require_once "Objet.php";
 
 class Auteur extends Objet
 {
-	// attributs
-    protected ?int $numAuteur;
+    // attributs
+    protected int $numAuteur;
     protected ?string $nom;
     protected ?string $prenom;
     protected ?int $anneeNaissance;
@@ -21,6 +21,9 @@ class Auteur extends Objet
         }
     }
 
+    /**
+     * @return array|false
+     */
     public static function getAllAuteurs()
     {
         // écriture de la requête
@@ -33,7 +36,11 @@ class Auteur extends Objet
         return $tableau;
     }
 
-    public static function getAuteurByNum($numAuteur): Auteur
+    /**
+     * @param $numAuteur
+     * @return Auteur|bool
+     */
+    public static function getAuteurByNum($numAuteur): Auteur|bool
     {
         // écriture de la requête
         $requetePreparee = "SELECT * FROM Auteur WHERE numAuteur = :num_tag;";
@@ -59,15 +66,15 @@ class Auteur extends Objet
     /**
      * Récupère les auteurs d'un livre
      * @param int $i
-     * @return array
+     * @return array|bool
      * @throws ErrorException
      */
-    public static function getAuteursByNumLivre(int $i): array
+    public static function getAuteursByNumLivre(int $i): array|bool
     {
         // On prépare la requête
         $queryString = ("SELECT * FROM Auteur NATURAL JOIN estAuteurDe WHERE numLivre = ?");
         $query = Database::pdo()->prepare($queryString);
-        try{
+        try {
             $query->execute([$i]);
         } catch (PDOException $e) {
             throw new ErrorException($e->getMessage());
@@ -86,7 +93,7 @@ class Auteur extends Objet
         // On prépare la requête
         $queryString = ("DELETE FROM estDeNationalite WHERE numAuteur = :numAuteur AND numNationalite = :numNationalite");
         $query = Database::pdo()->prepare($queryString);
-        try{
+        try {
             $query->execute([
                 "numNationalite" => $numNationalite,
                 "numAuteur" => $numAuteur
@@ -107,7 +114,7 @@ class Auteur extends Objet
         // On prépare la requête
         $queryString = ("INSERT INTO estDeNationalite (numAuteur, numNationalite) VALUES (:numAuteur, :numNationalite)");
         $query = Database::pdo()->prepare($queryString);
-        try{
+        try {
             $query->execute([
                 "numAuteur" => $numAuteur,
                 "numNationalite" => $numNationalite
@@ -119,6 +126,9 @@ class Auteur extends Objet
 
     // méthode static qui retourne un auteur identifié par son numAuteur
 
+    /**
+     * @return string
+     */
     public function afficher()
     {
         return "<p>auteur $this->prenom $this->nom, né(e) en $this->anneeNaissance </p>";
diff --git a/models/Categorie.php b/models/Categorie.php
index cc90eab92b835a565e0cfa153aae7225cd447326..5b53a8beaed291cc3e9eef5567f10cbf68921d96 100644
--- a/models/Categorie.php
+++ b/models/Categorie.php
@@ -72,7 +72,8 @@ class Categorie
     /**
      * @return void
      */
-    public function afficher(): 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/models/Livre.php b/models/Livre.php
index 4691948c7e62169cf8a68fe4ce59577eaa720cf8..9adca54ff054c42c10edbe29e221bbcc02534abe 100644
--- a/models/Livre.php
+++ b/models/Livre.php
@@ -4,22 +4,24 @@ require_once "Objet.php";
 class Livre extends Objet
 {
     protected int $numLivre;
-    protected string $titre;
-    protected int $anneeParution;
-    protected int $numGenre;
+    protected ?string $titre;
+    protected ?int $anneeParution;
+    protected ?int $numGenre;
 
     /**
-     * @param int $numLivre
-     * @param string $titre
-     * @param int $anneeParution
-     * @param int $numGenre
+     * @param int|null $numLivre
+     * @param string|null $titre
+     * @param int|null $anneeParution
+     * @param int|null $numGenre
      */
-    public function __construct(int $numLivre, string $titre, int $anneeParution, int $numGenre)
+    public function __construct(int $numLivre = NULL, string $titre = NULL, int $anneeParution = NULL, int $numGenre = NULL)
     {
-        $this->numLivre = $numLivre;
-        $this->titre = $titre;
-        $this->anneeParution = $anneeParution;
-        $this->numGenre = $numGenre;
+        if (!is_null($numLivre)) {
+            $this->numLivre = $numLivre;
+            $this->titre = $titre;
+            $this->anneeParution = $anneeParution;
+            $this->numGenre = $numGenre;
+        }
     }
 
     /**
@@ -43,39 +45,34 @@ class Livre extends Objet
 
     /**
      * @param int $numLivre
-     * @return Livre
+     * @return Livre|bool
      */
-    public static function getLivreByNumLivre(int $numLivre): Livre
+    public static function getLivreByNumLivre(int $numLivre): Livre|bool
     {
         $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']);
+            $query->setFetchmode(PDO::FETCH_CLASS, 'Livre');
+
         } catch (PDOException $e) {
             echo $e->getMessage();
         }
-        return $response;
+        return $query->fetch();
     }
 
     /**
      * Récupère les auteurs n'ayant pas écrit ce livre.
      * @param int $i
-     * @return array
+     * @return array|bool
      * @throws ErrorException
      */
-    public static function getNonAuteursByNumLivre(int $i): array
+    public static function getNonAuteursByNumLivre(int $i): array|bool
     {
         // On prépare la requête
         $queryString = ("SELECT * FROM Auteur WHERE numAuteur NOT IN (SELECT numAuteur FROM Auteur NATURAL JOIN estAuteurDe WHERE numLivre = ?)");
         $query = Database::pdo()->prepare($queryString);
-        try{
+        try {
             $query->execute([$i]);
         } catch (PDOException $e) {
             throw new ErrorException($e->getMessage());
@@ -88,13 +85,14 @@ class Livre extends Objet
      * @param int $numLivre
      * @param int $numAuteur
      * @return void
+     * @throws ErrorException
      */
     public static function deleteAuteurForLivre(int $numLivre, int $numAuteur): void
     {
         // On prépare la requête
         $queryString = ("DELETE FROM estAuteurDe WHERE numAuteur = :numAuteur AND numLivre = :numLivre");
         $query = Database::pdo()->prepare($queryString);
-        try{
+        try {
             $query->execute([
                 "numAuteur" => $numAuteur,
                 "numLivre" => $numLivre
@@ -109,13 +107,14 @@ class Livre extends Objet
      * @param int $numLivre
      * @param int $numAuteur
      * @return void
+     * @throws ErrorException
      */
     public static function addAuteurForLivre(int $numLivre, int $numAuteur): void
     {
         // On prépare la requête
         $queryString = ("INSERT INTO estAuteurDe (numAuteur, numLivre) VALUES (:numAuteur, :numLivre)");
         $query = Database::pdo()->prepare($queryString);
-        try{
+        try {
             $query->execute([
                 "numAuteur" => $numAuteur,
                 "numLivre" => $numLivre
diff --git a/models/Nationalite.php b/models/Nationalite.php
index 8b1eea383848dc9611462ef4e812836d055d8ac7..9d7f0a94c695611dd61f6f959d16734df095ddd1 100644
--- a/models/Nationalite.php
+++ b/models/Nationalite.php
@@ -8,13 +8,13 @@ class Nationalite extends Objet
     protected ?string $abrege;
 
     /**
-     * @param int $numNationalite
-     * @param string $pays
-     * @param string $abrege
+     * @param int|null $numNationalite
+     * @param string|null $pays
+     * @param string|null $abrege
      */
-    public function __construct(int $numNationalite=NULL, string $pays=NULL, string $abrege=NULL)
+    public function __construct(int $numNationalite = NULL, string $pays = NULL, string $abrege = NULL)
     {
-        if(!is_null($numNationalite)){
+        if (!is_null($numNationalite)) {
             $this->numNationalite = $numNationalite;
             $this->pays = $pays;
             $this->abrege = $abrege;
@@ -33,8 +33,7 @@ class Nationalite extends Objet
         $resultat = Database::pdo()->query($requete);
         // traitement de la réponse
         $resultat->setFetchmode(PDO::FETCH_CLASS, 'Nationalite');
-        $tableau = $resultat->fetchAll();
-        return $tableau;
+        return $resultat->fetchAll();
     }
 
     /**
@@ -48,7 +47,7 @@ class Nationalite extends Objet
         // On prépare la requête
         $queryString = ("SELECT * FROM Nationalite NATURAL JOIN estDeNationalite WHERE numAuteur = ?");
         $query = Database::pdo()->prepare($queryString);
-        try{
+        try {
             $query->execute([$i]);
         } catch (PDOException $e) {
             throw new ErrorException($e->getMessage());
diff --git a/models/Objet.php b/models/Objet.php
index b1f21ecc85beea12682d4960de331f7043900efe..8b91b28e5d39406f1de9be46f6c06e634ec9fe6c 100644
--- a/models/Objet.php
+++ b/models/Objet.php
@@ -75,10 +75,10 @@ class Objet
     /**
      * Permet de décrire une table représentant un objet.
      * @param $tableName
-     * @return array
+     * @return array|bool
      * @throws ErrorException
      */
-    public static function describeObject($tableName): array
+    public static function describeObject($tableName): array|bool
     {
         if (!isAlphaNumeric($tableName)) {
             throw new ErrorException("Le format du nom de la table $tableName est incorrect.");
@@ -99,7 +99,7 @@ class Objet
      * @param String $tableName
      * @param array $id
      * @param array $columns
-     * @return array|string[]
+     * @return array
      * @throws ErrorException
      */
     public static function modifyObjectById(string $tableName, array $id, array $columns): array
@@ -140,10 +140,10 @@ class Objet
      * Permet la récupération d'un objet depuis la base de données
      * @param string $tableName
      * @param array $id
-     * @return array|string[]
+     * @return array|bool
      * @throws ErrorException
      */
-    public static function getObject(string $tableName, array $id): array
+    public static function getObject(string $tableName, array $id): array|bool
     {
         $validation = Objet::verifyTableAndFormat($tableName);
         if (!$validation) {