Même si vous portez un S sur la poitrine, quand il s’agit de programmer, des erreurs s’insinueront dans votre application. Ces erreurs sont soit causées par nous, les programmeurs, à la suite d’une erreur de code, soit par les utilisateurs qui ne souhaitent pas se conformer aux contraintes de l’application ou du site Web..
Les erreurs causées par les utilisateurs finaux sont généralement plus défavorables que celles du programmeur car les données ou informations saisies par l'utilisateur sont imprévisibles..
Par exemple, dans un champ de formulaire de courrier électronique, au lieu de saisir un courrier électronique valide, l'utilisateur peut saisir un texte non-email. Si le site Web ne dispose pas d'un mécanisme solide de traitement des erreurs, l'utilisateur peut obtenir un accès non autorisé à des informations sensibles..
Étant donné que le comportement des utilisateurs est imprévisible, un site Web ou une application peut être programmé pour rejeter catégoriquement les données non valides entrées par l'utilisateur et informer l'utilisateur que les données sont invalides. Ce processus est ce qu'on appelle la gestion des erreurs
WordPress est livré avec une classe WP_Error qui facilite la gestion des erreurs dans les plugins et WordPress lui-même.
le WP_Error
La classe se compose de deux propriétés et de huit méthodes. Ces propriétés sont utilisées en interne par la classe et vous n’avez probablement pas besoin de ces propriétés car la plupart des tâches que vous souhaitez effectuer peuvent être accomplies à l’aide des méthodes de classe..
Vous trouverez ci-dessous les propriétés des deux classes et leur rôle..
$ erreurs
estun tableau contenant la liste des erreurs.$ error_data
est un tableau contenant la liste des données pour les codes d'erreur. Avant d’examiner les méthodes de classe, j’aimerais expliquer ces trois termes utilisés en interne par les WP_Error
class - Code, Message, Données.
Ne vous inquiétez pas si elles sont difficiles à comprendre pour le moment - nous allons clarifier les choses lorsque nous examinons des exemples de code dans la section suivante..
les erreurs
propriété de classe.code
) mais enregistré dans le error_data
propriété.Passons maintenant aux méthodes de classe et à ce qu'elles font:
__construction()
est une méthode magique PHP accepte trois arguments - code, message et données. Passer l'argument sur l'instanciation du WP_Error
la classe met en place le message d'erreur.get_error_codes ()
renvoie une liste de tous les codes d'erreur, le cas échéant.get_error_code ()
récupère le premier code d'erreur et renvoie une chaîne, un entier ou vide s'il n'y a pas de code d'erreur.get_error_messages ($ code)
récupérer tous les messages d'erreur lorsque le code
l'argument est absent ou des messages d'erreur correspondant à la code
argument. Retourne un tableau de chaînes d'erreur en cas de succès ou un tableau vide en cas d'échec (si vous utilisez un paramètre de code).get_error_message ($ code)
obtient un message d'erreur unique. Cela donnera le premier message disponible pour le code. Si aucun code n'est donné, le premier code disponible sera utilisé. Renvoie une chaîne d'erreur. get_error_data ($ code)
récupérer les données d'erreur pour un code d'erreur donné. Renvoie les données ou null, si aucune erreur. add ($ code, $ message, $ data)
ajouter plus de messages d'erreur à la liste des messages d'erreur.add_data ($ data, $ code)
ajoute des données pour le code d'erreur. Le code d'erreur ne peut contenir qu'une seule donnée d'erreur.Pour utiliser le WP_Error
class pour la gestion des erreurs, instanciez d’abord la classe suivie par l’utilisation de la méthode class. Vous pouvez ajouter un message d'erreur en passant le code
, message
, et Les données
sur l'instanciation.
$ mon_erreur = new WP_Error ('jouet', 'mon jouet préféré est le chariot');
Examen de la structure de l'objet $ my_error via print_r ()
révèle:
WP_Error Object ([errors] => Array ([toy] => Array ([0] => mon jouet préféré est dolly)) [error_data] => Array ()
Notez que notre erreur définie est stockée dans les erreurs
propriété de classe alors que le error_data
propriété n'a pas de données.
Passer un troisième argument sur l’instanciation crée une donnée avec le code
(premier argument) étant la clé du tableau et le troisième argument (Les données
), la valeur du tableau.
WP_Error Object ([errors] => Array ([toy] => Array ([0] => mon jouet préféré est dolly)) [error_data] => Array ([toy] => mon meilleur))Pour ajouter ou ajouter d'autres messages d'erreur à la liste des erreurs, le
ajouter
méthode est utilisée qui acceptecode
,message
, etLes données
comme argument de méthode.add ('game', 'ma console de jeu préférée est PS4');Passer un troisième argument (type de données mixte) à la
ajouter()
méthode ajoute une donnée au code d'erreur.add ('game', 'ma console de jeu préférée est PS4', 'best game');En utilisant
print_r ()
encore une fois, regardons la structure et les informations de notre$ mon_erreur
WP_Error
objet.WP_Error Object ([errors] => Array ([toy] => Array ([0] => mon jouet préféré est dolly) [jeu] => Array ([0] => ma console de jeu préférée est PS4)) [error_data ] => Array ([jouet] => meilleur jouet [jeu] => meilleur jeu))le
add_data ()
Cette méthode pourrait également être utilisée pour ajouter strictement des données pour le code d'erreur. Le code d'erreur ne peut contenir qu'une seule donnée d'erreur.$ my_error-> add_data ('mon meilleur professeur est Oncle Sam', 'professeur');Nous avons appris à instancier et à ajouter un message d’erreur et des données au
WP_Error
objet. Voyons comment récupérer le message d'erreur, le code et les données.En utilisant le
get_error_codes ()
méthode retourne une liste de tous les codes d'erreur.print_r ($ my_error-> get_error_codes ()); / * retourne Array ([0] => jouet [1] => jeu) * /Tandis que
get_error_code ()
renvoie uniquement le premier code d'erreur.print_r ($ my_error-> get_error_code ()); // jouetle
get_error_messages ()
Récupérer tous les messages d'erreur lorsque lecode
l'argument est absent ou des messages d'erreur correspondant à lacode
argument.print_r ($ my_error-> get_error_messages ()); / * renvoie Array ([0] => mon jouet préféré est dolly [1] => ma console de jeu préférée est PS4) * /print_r ($ my_error-> get_error_messages ('jeu')); / * renvoie Array ([0] => ma console de jeu préférée est PS4) * /le
get_error_message ()
renvoie un seul message d'erreur correspondant au code. si aucun code, retourne le premier message d'erreur.print_r ($ my_error-> get_error_message ()); // mon jouet préféré est dollyle
get_error_data ()
renvoie les données pour le code d'erreur.print_r ($ my_error-> get_error_data ()); // meilleur jouetprint_r ($ my_error-> get_error_data ('teacher')); // mon meilleur professeur est oncle SamLors de la construction d’un plugin, vous pouvez vérifier si une variable est un
WP_Error
objet. C'est ici queis_wp_error ()
est très pratique.Vous voudrez peut-être aussi vous assurer que
WP_Error
L'objet ne contient aucun message d'erreur avant le traitement d'une action. Par exemple, l’extrait de code ci-dessous vérifie si$ mon_erreur
objet ne contient aucune erreur. Si vrai, "Aucune erreur, nous sommes prêts à partir"est répété.if (1> count ($ my_error-> get_error_messages ())) echo "Aucune erreur, nous sommes prêts à partir";Résumé
Dans cette première partie de la série sur la gestion des erreurs dans WordPress en utilisant
WP_Error
, nous avons jeté un coup d'œil à la classe, expliqué ce que chaque méthode de classe fait avec des exemples de code.La deuxième partie nous montrera un cas pratique d’utilisation de
WP_Error
gérer les erreurs lors du développement de plugins. nous allons en fait construire un plugin de formulaire de contact à mesure que nous progressons.
Restez à l'écoute - ne le manquez pas!