Mit Hilfe von XDebug ist es möglich, PHP-Anwendungen zu debuggen. Wie dies für IntelliJ eingerichtet wird beschreibe ich im Folgenden.
Download
Zunächst muss die zur PHP-Version passende Version von XDebug heruntergeladen werden. Zu finden sind die Versionen auf der Downloadseite von XDebug: http://www.xdebug.org/download.php
Hierbei ist auf die PHP-Version, die Bittigkeit (32 oder 64) zu achten. Zusätzlich ist noch zu unterscheiden, ob die Thread-Safe-Version (TS) von PHP verwendet wird oder nicht.
Wurde die richtige DLL heruntergeladen, muss diese in das PHP-Verzeichnis in den Ordner ext kopiert werden.
XDebug in PHP einrichten
Als nächstes konfigurieren wir XDebug für PHP. Dies machen wir – wie alles für PHP – in der php.ini.
Folgender Eintrag sollte am Ende der Datei hinzugefügt werden:
1 2 3 4 5 6 |
[Xdebug] zend_extension="H:\Programme\PHP\PHP-5.4.41\ext\php_xdebug.dll" xdebug.remote_enable=1 xdebug.remote_port="9000" xdebug.profiler_enable=1 xdebug.profiler_output_dir="\tmp" |
Wichtig: Der Pfad zur DLL muss absolut angegeben werden. Mit einer relativen Pfadangabe habe ich es nicht zum Laufen bekommen.
XDebug in IntelliJ einrichten
Menü File -> Settings, dann PHP. Hier sollte bereits der richtige PHP-Interpreter ausgewählt sein. Falls nicht, siehe Entwicklungsumgebung für PHP unter Windows einrichten.
Neben der Drop-Down-Box für den Interpreter befindet sich ein Button mit drei Punkten darauf (…). Klickt man den an, erscheint der Interpreters-Dialog.
In dem Dialog wird die PHP-Version angezeigt (neben dem blauen Info-Icon) und daneben gibt es die Möglichkeit einen Debugger zu wählen. Als Debugger muss xdebug ausgewählt werden.
Als nächstes muss ein Server-Eingerichtet werden. Dazu im Menü Run -> Edit Configuration auswählen. Über das Plus-Symbol oben links eine neue Konfiguration erstellen und aus dem Drop-Down-Menü PHP Web Application wählen.
Die Konfiguration bekommt einen Namen. Als nächstes erstellen wir durch einen Klick auf den Button mit den drei Punkten neben der Zeile Server eine neue Server-Konfiguration. Wieder auf das grüne Plus klicken und den Namen Localhost vergeben. Bei Host ebenfalls localhost eintragen, der Port bleibt 80 und als Debugger Xdebug auswählen. Mit OK bestätigen.
Bei Start URL nun den Namen der Einstiegsseite der Applikation hinterlegen (typischerweise index.php). Befindet sich die Anwendung in einem Unterordner, muss dieser entsprechend angegeben werden. Zur Kontrolle wird unter der Eingabezeile direkt der Pfad angezeigt, der später verwendet wird.
Nun noch einen Browser auswählen, der bei einer Debug-Session gestartet werden soll und mit Klick auf OK bestätigen.
PHP Built-in Web Server zum Debuggen verwenden
Leider scheint es nicht möglich zu sein, den Build-In Webserver von PHP so zu konfigurieren, dass er sich aus IntelliJ heraus im Debug-Modus starten lässt. Es gibt aber einen Trick, mit dem man diesen trotzdem verwenden kann.
Dazu einen PHP Built-in Webserver konfigurieren und eine PHP Web Application wie oben beschrieben. Beide müssen auf den gleichen Port konfiguriert sein und das Document root des internen Web Servers muss zum Pfad in der PHP Web Application passen.
Nun einfach den Internen Web Server über die Konfigurationsauswahl wählen und starten. Nun bei der Konfigurationsauswahl die PHP Web Application wählen und über Debug starten. Die PHP Web Application verwendet nun den internen PHP Web Server, der auf dem gleichen Port läuft.
Debuggen in IntelliJ mit XDebug
Durch einen Klick auf den linken Rand oder durch Strg + F8 lassen sich Breakpoints hinzufügen. Ruft man nun die Seite im Browser auf, hält die Anwendung an und man kann sich den Wert der Variablen anschauen und Schritt für Schritt durch den Code wandern.