Finden Sie die Quelle der Benachrichtigung / Warnung / Fehler effizient

Beim Debuggen von Plugins oder Themes stoße ich oft auf einen Hinweis / eine Warnung / einen Fehler, der nicht wirklich nützliche Debugging-Informationen liefert.

Notice: get_current_site_name is deprecated since version 3.9.0! Use get_current_site() instead. in /wp-includes/functions.php on line 3835

Ich verstehe, dass es einen Verweis auf get_current_site_name irgendwo gibt, der geändert werden muss, aber es gibt viele Gelegenheiten, wo ich keine Ahnung habe, wo ich suchen soll. Ich habe eine Erfolgsquote von 75%, wenn ich an die Wurzel gelange, etwas Wissen darüber, was bestehende Themen und Plugins im Hintergrund tun, und es ermöglicht eine schnelle Suche und Behebung. Aber in den restlichen 25% muss ich nur mit dem Fehler leben, weil ich wenig Zeit habe, um Hunderte von Dateien zu durchsuchen.

Gibt es eine Möglichkeit, die Plugin / Theme-Datei zu bestimmen, woher diese Nachrichten tatsächlich stammen?

Solutions Collecting From Web of "Finden Sie die Quelle der Benachrichtigung / Warnung / Fehler effizient"

Hier gilt die Regel, Blähungen zu vermeiden, am besten. Sie sollten sich fragen, warum Sie so viele Fehler mit dem von Ihnen verwendeten Code erzeugen. Theoretisch sollten Sie die Fehler nicht beheben, sondern auf den Autor warten, um es zu reparieren, als ob Sie es selbst beheben würden, indem Sie das Plugin / Theme fälschen.

Genauer gesagt ist die Antwort, dass es wahrscheinlich unmöglich ist, es besser als 90% zu haben. Sie können das ” query monitor ” -Plugin verwenden, um Stack-Trace zu erhalten, aber selbst Stack-Trace hat nur einen begrenzten Wert für nicht triviale Situationen. Zum Beispiel könnten Sie beim Zugriff auf ein Array-Element einen Fehler vom Typ “nicht definierter Index” erhalten, der ein Ergebnis eines DB-Zugriffserrorss ist, der beim Speichern eines Werts auftritt und dessen Symptome nur dann angezeigt werden, wenn er verwendet wird.

Und da das Auffinden und Beheben von nicht trivialen Fehlern nicht trivial ist und Fehler immer ein mögliches Tor zu Sicherheitslücken oder allgemeinen Fehlfunktionen der Website sind, sollten Sie keine Plugins und Themes verwenden, bei denen Sie solche Dinge allein durch nicht rechtzeitige Aktualisierungen herausfinden können oder eine gute effektive Unterstützung.

Sie können die installierten Dateien auf verschiedene Arten durchsuchen, um nach Vorkommen des functionsnamens zu suchen, der die Fehler / Warnungen enthält. Hier sind 3 Möglichkeiten:

  1. Laden Sie alle installierten Dateien über FTP herunter. Verwenden Sie einen Texteditor mit einer function zum Suchen in Dateien, der Unterordner (z. B. TextPad) durchsucht. Dies ist der langsame Weg, es sei denn, Sie behalten eine lokale Kopie, in diesem Fall ist es der schnelle Weg.

  2. Melden Sie sich über SSH bei Ihrem Server an und verwenden Sie einen Suchbefehl über die Befehlszeile.

cd /home/USERNAME/web/DOMAIN/ (Pfad unterhalb der Installation)

fgrep -R "FUNCTION_NAME" public_html (wobei public_html das Installationsverzeichnis ist)

  1. Verwenden Sie ein Plugin, das alle installierten Plugin- oder Theme-Dateien aus Ihrem Admin-Bereich durchsucht, z. WP BugBot (vollständige Offenlegung: von mir zu diesem Zweck geschrieben.)

Ich denke, es ist auch möglich, dass die Fehlermeldungen mehr Informationen über den Fehler ausgeben, indem man die PHP-Konfiguration oder die Fehlereinstellungen ändert, aber das ist eine erweiterte Option, die ich für weitere Untersuchungen überlasse.

Mein letzter Ausweg ist in solchen Fällen das zeitweilige Hinzufügen eines Aufrufs zur PHP-function debug_print_backtrace () an der in der Warnmeldung angegebenen Datei / Zeile #.

Durch Überprüfen der Ausgabe von debug_print_backtrace() können Sie den Aufruf-Stack sehen, der zur Generierung der Warnmeldung führte. Manchmal ist der Aufrufstapel ziemlich tief und es dauert noch eine Weile, um herauszufinden, was vor sich geht.