Debugging PHP mit Xdebug, PhpStorm und Docker

    Debugging PHP

    Debugging PHP ist eines der wichtigsten Themen der PHP Software-Entwicklung. Leider ist es in dieser Sprache etwas aufwendiger, Debugging einzusetzen, als man es aus anderen Systemen und Sprachen kennt.

    In diesem Blog-Post wird beschrieben, wie PHP-Debugging mittels Xdebug und PhpStorm in einer Docker-Umgebung verwendet werden kann.

    Als Grundlage für das Beispiel dient wodby’s Drupal Docker Stack. In diesem Stack befindet sich auch ein Nginx-Server, bei dem Xdebug bereits vorinstalliert ist.

    Die hier gezeigten Schritte lassen sich auch mit beliebigen Nginx-Containern durchführen, sofern Xdebug installiert und aktiviert ist.

    Suchen Sie eine kompetente Drupal Agentur?

    Bevor das Debugging beginnen kann, muss ein weiterer Befehl in einem Terminal ausgeführt werden.

    Linux:
    sudo ifconfig lo:0 10.254.254.254 up

    Mac:
    sudo ifconfig lo0 alias 10.254.254.254

    Dieser Befehl sorgt dafür, dass die Xdebug-Verbindungen aus dem Container tatsächlich den Host-Rechner erreichen.

    Damit ist die Docker-Umgebung vorbereitet. Als nächstes wird PhpStorm konfiguriert. Unter PhpStorm -> Preferences werden folgende Einstellungen vorgenommen:

    Auf dieser Einstellungsseite ist auch eine Kurzanleitung der nächsten Schritte zu sehen. Als nächstes muss der Xdebug-Listener in PhpStorm aktiviert werden. In der oberen Toolbar auf der rechten Seite gibt es einen Knopf für diesen Zweck.

    Wird dieser Knopf betätigt, ändert sich das Icon, um zu signalisieren, dass der Listener aktiv ist.

    Sobald nun eine Anfrage von Xdebug gesendet wird, fängt PhpStorm diese ab und startet eine Debugging Session.

    Um diesen Effekt auszulösen, muss in einem beliebigen Browser eine Seite des Projekts aufgerufen werden. Daraufhin öffnet sich automatisch folgendes Fenster in PhpStorm:

    In diesem Dialog muss die richtige Datei ausgewählt werden, die für den Seitenaufruf zuständig war. In diesem Beispiel ist es die index.php der Drupal-Installation im docroot-Verzeichnis.

    Der Dialog erscheint nur bei der ersten Debugging-Anfrage. Nach Abschließen des Dialogs startet das Debugging und endet sofort wieder, da noch keine Breakpoints gesetzt wurden.

    Dies kann am linken Rand in einer Code-Datei getan werden. Durch einen einfachen Klick können Breakpoints in bestimmten Zeilen hinzugefügt und gelöscht werden. Ein Breakpoint wird durch einen roten Punkt symbolisiert:

    Sobald eine Seite, die den Code bei einem Breakpoint ausführt, aufgerufen wird, startet eine Debugging Session, in der Schritt für Schritt durch den Code gesprungen werden kann, Variablenwerte offengelegt werden und Ausdrücke on-the-fly ausgewertet werden können.

    Suchen Sie eine kompetente Agentur für Ihr Software-Projekt? Mehr erfahren

    Wir hoffen, dass dieser Blogbeitrag hilfreich für Sie war!

    Verwandte Blogbeiträge

    Diese Themen beschäftigten uns und unsere Kunden kürzlich