Lorsque l'on construit un projet web et que l'on déploi, il arrive parfois des erreurs (un fichier déplacé, une variable supprimée ...)
Cependant en PHP ce type d'erreur peut être fatale en terme de communication par rapport aux utilisateurs. Nous allons donc créer un objet, une classe qui va nous permettre de gérer ces erreurs proprements.
Pour créer cet objet, on va utiliser le design pattern observers. Nous l'avons déjà utilisé pour le mailEventListener donc pas la peine de développer d'avantage
il faudra obligatoire ajouter et retirer les observers et les déclencher
l'observer doit simplement faire les mise à jour en fonction du sujet observé
Allez on passe aux choses sérieuses on va créer notre classe sujet : ErrorHandler
Pour le moment on va se contenter des fonctions obligatoires.
laissons cette classe pour le moment, on l'adaptera plus tard
A présent que l'on a un début de sujet, on va créer un observer. Celui-ci se contentera de mettre à jour un fichier d'erreur (log)
Laissons notre LogFile de coté pour le moment.
On utilise une fonction privée writeError pour ecrire dans notre fichier et qui prend en paramètre l'erreur en question. Donc il faut méthode getError() dans notre classe errorHandler.
Celle-ci va retourner l'erreur donc on va avoir besoin d'une variable pour la stocker du type stdClass donc un objet à la volée.
Profitons pour ré implémenter la méthode notifyObserver() de notre classe pour prévenir les problèmes et créer la méthode pour mettre à jour la variable $current; et obtenir la ligne de code concerné le fichier et le message
Maintenant que l'on a nos classes prêtes, on va faire un test. Pour ce faire, on va créer une fonction qui instancie l'ErrorHandler au tout début de la page. Celle-ci devra obligatoirement utiliser la méthode set_error_handler qui va remplacer l'affichage des erreur pour notre objet