PHPStorm ist bei den meisten PHP-Kennern die präferierte IDE (Integrated Development Environment) – und das nicht ohne Grund. Obwohl es viele kostenlose Alternativen gibt (Eclipse, Netbeans usw.), können diese nicht mit dem Funktionsumfang und der engen Verknüpfung von PHPStorm mit PHP (z.B. die intelligente Code-Completion) mithalten. In der neusten Version 2016.1 ist unter zahlreichen anderen Verbesserungen auch das „Zero-Configuration Debugging“ optimiert worden. Dies erlaubt es extrem einfach PHP Anwendungen auf internen und externen Server innerhalb der IDE zu debuggen. Dieser Artikel gibt einen Einblick, wie dies funktioniert.
Unser Testsetup
Zum Zwecke der Schritt-für-Schritt Anleitung für diesen Artikel haben wir uns lokal einen XAMPP Server in der zurzeit aktuellen Version 7.0.4 (mit PHP 7.0.4) installiert. Prinzipiell kann diese Anleitung aber auf praktisch jegliche Server-Umgebung adaptiert werden.
Installation von XDebug
Der erste wichtige Schritt ist es natürlich, XDebug auf dem Server als PHP Modul zu installieren. Im Falle von XAMPP 7.0.4 ist XDebug allerdings noch nicht mitgeliefert. Die einfachste Möglichkeit um zu überprüfen, ob XDebug installiert und aktiviert ist, ist die PHP Informationen (herauszufinden über das Einfügen von <?php phpinfo(); ?> in einer .php Datei) der Serverumgebung auf https://xdebug.org/wizard.php einzufügen. Diese Seite informiert einen dann darüber, ob XDebug noch installiert werden muss und/oder in der php.ini Datei aktiviert werden muss.
Die Installation wird dabei erledigt, indem die heruntergeladene php_xdebug.ddl Datei in das PHP ext/ Verzeichnis kopiert wird. Dies ist bei einer Standard XAMPP Installation C:\xampp\php\ext\.
Die Aktivierung geschieht in der php.ini mit dem Einfügen folgender Zeilen (der Pfad unter zend_extension muss natürlich gegebenfalls angepasst werden):
[Xdebug] zend_extension = C:\xampp\php\ext\php_xdebug-2.4.0-7.0-vc14.dll xdebug.remote_enable=1
Für das Debugging eines Remote-Servers ist die Konfiguration etwas kniffliger. Alternativ kann aber auch einfach ein SSH-Tunnel, wie hier beschrieben wird, verwenden.
Das war’s – zumindest was die Einrichtung des Servers betrifft!
Einrichtung von PHPStorm
Wie der Name „Zero-Configuration Debugging“ bereits sagt, muss praktisch nichts weiter in PHPStorm gemacht werden. Es ist dennoch ratsam, die Server-Konfiguration zu testen. Dies kann erreicht werden, indem man Run->Web Server Debug Validation ausführt. Dort gibt man Pfad zum XAMPP htdocs/ Verzeichnis und die Server-URL an und erhält folgendes Ergebnis, sobald die Validation erfolgreich war:
Danach muss PHPStorm nur noch angewiesen werden, auf Debugger Verbindungen zu hören. Dies kann in der oberen Rechten Ecke der IDE innerhalb der Navigationsleiste erledigt werden:
Browser einrichten
Der Webserver und die IDE sind nun korrekt eingerichtet. Jetzt muss nur noch der Webserver angewiesen werden, die Debugging-Session zu starten. Dies kann man mithilfe des GET-Parameters XDEBUG_SESSION_START erreicht werden (z.B. http://localhost/xdebug.php?XDEBUG_SESSION_START für das Debugging der Datei xdebug.php). Noch einfacher geht es mit den entsprechenden Erweiterungen für Firefox, Chrome und Opera.
Und schon kann es losgehen
Nachdem die Seite mit dem entsprechenden Parameter oder mit den Browser-Erweiterungen aufgerufen wird, verbindet sich der Debugger automatisch mit PHPStorm. Dort können per Doppelklick auf den linken Bereich neben einer Codezeile oder mittels Str + F8 (Standardtastaturbelegung) Breakpoints eingefügt werden. Die Ausführung hält an diesem Punkt an und kann – wie bei allen Debugger üblich – zeilenweise fortgeführt werden. Dabei können Werte von Variablen nicht nur in einem extra View-Element angeschaut werden, sondern werden sogar standardmäßig sehr benutzerfreundlich direkt neben den ausgeführten Quellcodezeilen angezeigt. Im folgenden Beispiel wird ein Array nach der Quersumme aufsteigend sortiert ausgegeben. Man kann dabei gut erkennen, wie in der Callbackfunktion der Sortierung sehr übersichtlich die Werte des aktuellen Vergleichs ausgegeben werden:
Fazit
Mittels PHPStorm geht es spielend leicht, PHP Applikation zu testen. Vor allem auf einem lokalen Testserver kann innerhalb von wenigen Minuten das Debugging eingerichtet werden. Dieser Artikel geht dabei allein auf das Setup ein. Wie genau man Debugging richtig für die Fehlerbehebung einsetzt und welche weiteren Features (Profiling, Breakpoint mit Vorbedingung etc.) es noch gibt, kann z.B. auf den folgenden Seiten nachgelesen werden: