Zurück zum Blog

So debuggen Sie PHP-Code mit Xdebug und PhpStorm in einem DDEV-Setup

2022-10-084 Min Lesezeit

Was ist Debugging?

Laut Wikipedia: „Im Bereich der Computerprogrammierung und Softwareentwicklung ist Debugging der Prozess des Findens und Behebens von Fehlern (Defekten oder Problemen, die die korrekte Funktion verhindern) in Computerprogrammen, Software oder Systemen.“

Laut Internet: „Debugging ist wie der Detektiv in einem Krimi zu sein, in dem man auch der Mörder ist.“ – Filipe Fortes

Was ist DDEV?

DDEV ist ein Open-Source-Tool, mit dem lokale Websites schnell mithilfe von Docker eingerichtet werden können. Und Sie müssen nicht viel über Docker wissen, um es nutzen zu können, Sie müssen es nur installiert haben. Eine Liste von Befehlen, um DDEV und ein WordPress- oder Drupal-Projekt zum Laufen zu bringen, finden Sie unter ttps://davidloor.com/2021/12/22/how-to-setup-a-wordpress-and-drupal-local-site-with-ddev/

Was ist Xdebug?

Xdebug, laut der offiziellen Website, „ist eine Erweiterung für PHP und bietet eine Reihe von Funktionen zur Verbesserung der PHP-Entwicklungserfahrung“.

Eine der Funktionen, die Xdebug bietet, ist das Step-Debugging, bei dem Xdebug mit einer IDE über das DBGp-Protokoll interagiert. PhpStorm, Sublime, Netbeans, Visual Studio Code und andere bekannte IDEs unterstützen es. Mit Step-Debugging können Programmierer Breakpoints in jeder Zeile eines PHP-Skripts setzen, an denen sie die Ausführung stoppen möchten, um den Programmzustand und das Verhalten an diesem spezifischen Punkt sehen zu können.

Warum sollten wir uns mit einem Tool wie xDebug beschäftigen, wenn wir Funktionen wie error_log, print_r, var_dump und ähnliche haben, die wir alle schon oft benutzt haben? Weil xDebug Sie zu einem viel schnelleren Coder und Fehlerbeheber macht.

Nehmen wir an, Sie müssen eine PHP-Datei debuggen, in der Sie aufgrund der Server-Fehlerprotokolle fast sicher einen Fehler vermuten, und verwenden nur Funktionen wie error_log, print_r. Sie müssen diese Funktionen aufrufen, die Variablen übergeben, die Sie ausgeben möchten, und die Seite im Browser aktualisieren, um die Ausgabe zu überprüfen. Wenn die Variablen Ihnen nicht die Informationen liefern, die Sie zur Behebung des Problems benötigen, müssen Sie den Vorgang mit einem anderen Satz von Variablen wiederholen, bis Sie die Informationen erhalten, die zur Behebung des Fehlers hilfreich sein könnten. Und wie wir wissen, ist dieser Prozess zeitaufwendig.

Um denselben hypothetischen Fehler wie oben in einem PHP-Skript mit xdebug zu debuggen, müssen Sie den Breakpoint in den Zeilen setzen, in denen Sie den Zustand des Programms sehen möchten, und den Browser aktualisieren. Sie können alle Variablen im Gültigkeitsbereich während der Anfrage sehen, wie im folgenden Screenshot gezeigt, mit nur **einer** Interaktion.

PHP-Debugging mit Xdebug und PhpStorm

Xdebug installieren und aktivieren

  1. Xdebug ist bei der Verwendung von DDEV bereits installiert.
  2. Um Xdebug im DDEV-Projekt zu aktivieren, führen Sie im Terminal einfach ddev xdebug on aus
    1. Sie sollten Enabled xdebug als Ausgabe erhalten

Beginnen Sie in PhpStorm, auf PHP-Debugging-Verbindungen zu lauschen

  1. Öffnen Sie Ihr PHP-Projekt in PhpStorm
  2. In der oberen rechten Ecke von PhpStorm finden Sie ein kleines Telefonsymbol. Klicken Sie darauf, um mit dem Lauschen auf PHP-Debugging-Verbindungen zu beginnen.
Beginnen Sie mit dem Lauschen auf PHP-Debugging-Verbindungen
  1. Öffnen Sie Ihre lokale Website in einem Browser, und in PhpStorm werden Sie aufgefordert, die eingehende Verbindung von Xdebug zu akzeptieren. Klicken Sie dort auf „Akzeptieren“.
Eingehende Verbindung von Xdebug

Abschließende Gedanken

Xdebug ist nur ein weiteres Werkzeug, das zur Suche und Behebung von Fehlern in PHP-Code verwendet werden kann. Es kann in vielen Fällen die Produktivität eines PHP-Entwicklers steigern.

PhpStorm ist ebenfalls ein weiteres Werkzeug mit großartigen Funktionen für die PHP-Entwicklung. Ich habe vor 2 Jahren damit angefangen, nachdem ich all die Vorteile gehört hatte, die es meinen Kollegen bot. Über 13 Jahre lang war ich ein großer Fan von Apache Netbeans, das auch gut mit Xdebug funktioniert, aber einige zusätzliche Schritte waren erforderlich, um es vollständig funktionsfähig zu machen, und es verbrauchte zu viele Ressourcen meines Computers, der dadurch super langsam wurde.

Wir sollten uns daran erinnern: „Man ist nur so gut wie die Werkzeuge, die man benutzt.“

Kategorien: