Exercice 16 - Création d'exceptions
Table des matières
Mise en situation
Vous devez maintenant utiliser les exceptions pour faire une gestion plus sécuritaire des erreurs dans vos scripts.
Modalités
- Exercice en équipe
- Réaliser durant les cours
- Durée approximative de 60 à 80 minutes
- Le fichier de remise est un fichier zip
- Remis sur Léa dans exercice 16
À faire (étapes)
Étape 1
Vous devez ajouter les fonctionnalités suivantes à votre site de commerce:
Récits utilisateurs:
- En tant que client connecté, je peux ajouter un produit dans mon panier
- En tant que client ou visiteur, je peux voir le détail d'un produit en cliquant sur celui-ci
Détails importants:
- Faire des fonctions pour toutes ces demandes.
- Pour ajouter un produit dans un panier, vous devez utiliser une variable de session et une page secondaire nommé add-cart.php qui recevra l'id du produit à ajouter en session
- À partir de cet id, vous devez vérifier si le produit existe bien et a une valeur positive, etc. (exceptions)
- Pour voir le détail d'un produit, vous devez utiliser une variable de get id et une page secondaire nommé product.php qui recevra l'id du produit à ajouter dans une requête WHERE SQL
Mode expert
- Afficher le panier avec son nombre d'élément dans l'entête du site,
- Être en mesure de voir le contenu du panier et de le vider.
Étape 2
En utilisant vos fichiers de projet et avec les fonctions du fichier functions.php
- Vous devez ajouter la gestion des exceptions aux différentes fonctions avec un if() ... throw new Exception dans functions.php
- Faites au minimum 2 exceptions, surtout s'il y a deux paramètres. Normalement, il devrait être possible d'en faire beaucoup plus que 2, mais si vous comprenez le principe c'est l'essentiel.
- Ensuite, faites l'appel de ces fonctions avec des valeurs erronés pour tester vos exceptions
- Assurez-vous que vos exceptions fonctionnent bien
-
Vous pouvez utiliser l'option de logguer les erreurs dans exceptions.log (comme dans la vidéo)
Voici la fonction au besoin:function ecrireLog($message){ //A PHP array containing the data that we want to log. $dataToLog = array( date("Y-m-d H:i:s"), //Date and time $_SERVER['REMOTE_ADDR'], //IP address $message ); //Turn array into a delimited string using //the implode function $data = implode(" - ", $dataToLog); //Add a newline onto the end. $data .= PHP_EOL; //The name of your log file. //Modify this and add a full path if you want to log it in //a specific directory. $pathToFile = 'exceptions.log'; //Log the data to your file using file_put_contents. file_put_contents($pathToFile, $data, FILE_APPEND); }