WordPress-Fehlerbehandlung mit WP_Error-Klasse I

Auch wenn Sie eine tragen S auf der Brust, wenn es um die Programmierung geht, werden sich Fehler zweifellos in Ihre Anwendung einschleichen. Diese Fehler werden entweder von Programmierern als Folge von Codefehlern verursacht oder von Benutzern, die nicht bereit sind, sich an die Anwendung oder die Website-Beschränkungen zu halten.

Die durch die Endbenutzer verursachten Fehler sind normalerweise nachteiliger als die des Programmierers, da die vom Benutzer eingegebenen Daten oder Informationen nicht vorhersagbar sind.

In einem E-Mail-Formularfeld kann der Benutzer beispielsweise anstelle der Eingabe einer gültigen E-Mail-Adresse eingeben ein Nicht-E-Mail-Text. Wenn die Website keinen soliden Fehlerbehandlungsmechanismus aufweist, kann der Benutzer unberechtigten Zugriff auf vertrauliche Informationen erhalten.

Da das Verhalten des Benutzers nicht vorhergesagt werden kann, kann eine Website oder Anwendung so programmiert werden, dass ungültige Daten, die vom Benutzer eingegeben wurden, unberechtigt zurückgewiesen werden und der Benutzer darüber informiert wird, dass die Daten ungültig waren. Dieser Vorgang wird als Fehlerbehandlung bezeichnet

WordPress wird mit einer WP_Error-Klasse geliefert, die die Fehlerbehandlung in Plugins und WordPress selbst wesentlich vereinfacht.

WP_Error verstehen

Das WP_Error Klasse besteht aus zwei Eigenschaften und acht Methoden. Diese Eigenschaften werden intern von der Klasse verwendet. Diese Eigenschaften werden wahrscheinlich nicht benötigt, da die meisten Aufgaben, die Sie ausführen möchten, mit den Klassenmethoden ausgeführt werden können.

Nachfolgend sind die beiden Klasseneigenschaften und ihre Eigenschaften aufgeführt.

  • $ Fehler istein Array mit der Fehlerliste.
  • $ error_data ist ein Array, das die Liste der Daten für Fehlercodes enthält.

Bevor wir die Klassenmethoden untersuchen, möchte ich diese drei Begriffe intern erklären WP_Error Klasse - Code, Nachricht, Daten.

Machen Sie sich keine Sorgen, wenn sie im Moment schwer zu verstehen sind - Dinge werden klarer, wenn wir Codebeispiele im nachfolgenden Abschnitt untersuchen.

  • Code ähnelt einem Schlüssel / Wert-Paar wie einem Array: the Code In diesem Sinne ist der Schlüssel.
  • Die Nachricht ist der Wert eines Schlüssel / Wert-Paares, das im gespeichert ist Fehler Klasseneigenschaft.
  • Daten, Wie in der obigen Nachricht ist dies der Wert eines Schlüssels ( Code ) aber auf dem gespeichert error_data Eigentum.

Nun zu den Klassenmethoden und was sie tun:

  • __konstruieren() ist eine magische PHP-Methode, die drei Argumente akzeptiert - Code, Nachricht und Daten. Übergabe des Arguments bei der Instantiierung des WP_Error Klasse richtet die Fehlermeldung ein.
  • get_error_codes ()Gibt eine Array-Liste aller Fehlercodes zurück, falls verfügbar.
  • get_error_code ()ruft den ersten Fehlercode ab und gibt String, Ganzzahl oder Leer zurück, wenn keine Fehlercodes vorhanden sind.
  • get_error_messages ($ code) alle Fehlermeldungen abrufen, wenn die Code Argument fehlt oder Fehlermeldungen, die dem entsprechen Code Streit. Gibt bei Erfolg ein Array mit Fehlerzeichenfolgen zurück, oder bei Fehler ein leeres Array (bei Verwendung des Codeparameters)..
  • get_error_message ($ code)bekommt eine einzelne Fehlermeldung. Dadurch wird die erste für den Code verfügbare Nachricht angezeigt. Wenn kein Code angegeben wird, wird der erste verfügbare Code verwendet. Gibt eine Fehlerzeichenfolge zurück. 
  • get_error_data ($ code) Fehlerdaten für einen bestimmten Fehlercode abrufen. Gibt die Daten oder null zurück, wenn keine Fehler vorliegen. 
  • hinzufügen ($ code, $ message, $ data)Hängen Sie weitere Fehlermeldungen an die Liste der Fehlermeldungen an.
  • add_data ($ data, $ code)fügt Daten für Fehlercode hinzu. Der Fehlercode kann nur ein Stück Fehlerdaten enthalten.

Funktionsweise der WP_Error-Klasse

Um die WP_Error Klasse für die Fehlerbehandlung, instanziieren Sie zunächst die Klasse, indem Sie die Klassenmethode verwenden. Sie können eine Fehlermeldung hinzufügen, indem Sie die Code, Botschaft, und Datenauf instantiation.

$ my_error = new WP_Error ('toy', 'mein Lieblingsspielzeug ist Dolly');

Untersuchen Sie die Struktur des $ my_error-Objekts über print_r () enthüllt:

WP_Error-Objekt ([errors] => Array ([toy] => Array ([0] => mein Lieblingsspielzeug ist Dolly)) [error_data] => Array () 

Beachten Sie, dass unser definierter Fehler in gespeichert wird Fehler Klasseneigenschaft während der error_data Eigenschaft hat keine Daten.

Wenn Sie ein drittes Argument zur Instantiierung übergeben, erstellen Sie Daten mit der Code (erstes Argument) ist der Array-Schlüssel und das dritte Argument (Daten), der Arraywert.


WP_Error-Objekt ([errors] => Array ([toy] => Array ([0] => mein Lieblingsspielzeug ist Dolly)) [error_data] => Array ([toy] => my best))

Um weitere Fehlermeldungen zur Fehlerliste hinzuzufügen oder anzufügen, klicken Sie auf hinzufügen verwendet wird, die akzeptieren Code, Botschaft, und Daten als Methodenargument.

add ("game", "meine Lieblings-Spielekonsole ist PS4");

Übergabe eines dritten Arguments (gemischter Datentyp) an hinzufügen() Die Methode fügt dem Fehlercode Daten hinzu.

Hinzufügen ("Spiel", "Meine Lieblings-Spielekonsole ist PS4", "Bestes Spiel");

Verwenden print_r ()  Lassen Sie uns noch einmal die Struktur und die Informationen unserer sehen $ my_error WP_Error Objekt.

WP_Error-Objekt ([Fehler] => Array ([Spielzeug] => Array ([0] => Mein Lieblingsspielzeug ist Dolly) [Spiel] => Array ([0] => Meine Lieblingsspielkonsole ist PS4)) [Fehlerdaten ] => Array ([Spielzeug] => Bestes Spielzeug [Spiel] => Bestes Spiel))

Das Daten hinzufügen() Diese Methode kann auch verwendet werden, um strikte Daten für den Fehlercode hinzuzufügen. Der Fehlercode kann nur ein Fehlerdatum enthalten.

$ my_error-> add_data ('Mein bester Lehrer ist Uncle Sam', 'Lehrer');

Wir haben gelernt, wie Sie eine Fehlermeldung und Daten in die Instanz einfügen und hinzufügen WP_Error Objekt. Mal sehen, wie man die Fehlermeldung, den Code und die Daten abruft.

Verwendung der get_error_codes () Die Methode gibt eine Array-Liste aller Fehlercodes zurück.

print_r ($ my_error-> get_error_codes ()); / * gibt Array zurück ([0] => toy [1] => game) * /

Während get_error_code () gibt nur den ersten Fehlercode zurück.

print_r ($ my_error-> get_error_code ()); // Spielzeug

Das get_error_messages () Rufen Sie alle Fehlermeldungen ab, wenn die Code Argument fehlt oder Fehlermeldungen, die dem entsprechen Code Streit.

print_r ($ my_error-> get_error_messages ()); / * Rückgabe Array ([0] => Mein Lieblingsspielzeug ist Dolly [1] => Meine Lieblingsspielkonsole ist PS4) * /

print_r ($ my_error-> get_error_messages ('game')); / * gibt Array zurück ([0] => meine Lieblingsspielkonsole ist PS4) * /

Das get_error_message () gibt eine einzelne Fehlermeldung zurück, die dem Code entspricht. Wenn kein Code vorhanden ist, wird die erste Fehlermeldung zurückgegeben.

print_r ($ my_error-> get_error_message ()); // Mein Lieblingsspielzeug ist Dolly

Das get_error_data () gibt die Daten für den Fehlercode zurück.

print_r ($ my_error-> get_error_data ()); // bestes spielzeug

print_r ($ my_error-> get_error_data ('teacher')); // Mein bester Lehrer ist Uncle Sam

Wenn Sie ein Plugin erstellen, möchten Sie vielleicht prüfen, ob eine Variable eine ist WP_Error Objekt. Das ist wo is_wp_error () ist praktisch.

Vielleicht möchten Sie auch sicherstellen, dass a WP_Error Das Objekt enthält keine Fehlernachricht, bevor eine Aktion ausgeführt wird. Im folgenden Code-Snippet wird beispielsweise geprüft, ob $ my_error Objekt enthält keinen Fehler. Wenn wahr, "Kein Fehler, wir sind gut zu gehen"wird wiederholt.

if (1> count ($ my_error-> get_error_messages ())) echo "Kein Fehler, wir sind bereit zu gehen"; 

Zusammenfassung

In diesem ersten Teil der Serie über die Behandlung von Fehlern in WordPress WP_Error, Wir haben uns die Klasse angesehen und erklärt, was jede Klassenmethode mit Codebeispielen macht.

Teil zwei zeigt uns einen praktischen Anwendungsfall WP_Error Fehler bei der Entwicklung von Plugins behandeln. Wir werden tatsächlich ein Kontaktformular-Plugin erstellen, während wir fortschreiten.
Bleiben Sie dran - verpassen Sie es nicht!