Als "Java-verwöhnter" Entwickler scheint man bei der Entwicklung von PHP-Webapplikationen zunächst einen Schritt zurückzugehen: anstatt ausgefeilter Debugging- und Profilingtechniken verwendet man zunächst doch wieder das "gute alte Echo-Debugging". Dass dies nicht sein muss, zeigt der folgende Artikel, in dem ich die Einrichtung einer komplett debugfähigen Entwicklungsumgebung für PHP unter Windows auf Basis von Eclipse, XAMPP, PHP und Firefox beschreibe.
Installation von EclipseZunächst ist eine lauffähige Installation von Eclipse notwendig. Die in diesem Beispiel beschriebene Entwicklungsumgebung basiert auf Eclipse 3.3 (Europa), erhältich unter http://www.eclipse.org. Die genaue Installation ist dort ausführlich beschrieben, daher wird hier nicht darauf eingegangen. Installation der Eclipse PHP Development Tools (PDT)Das PDT-Paket stellt ein umfangreiches Toolset für die Entwicklung von PHP Applikationen dar. Neben einem sehr guten PHP-Editor mit Syntax-Highlighting, Code-Folding etc. ist auch eine Schnittstelle zu PHP-Debuggern enthalten. Zur Installation wird über das Menü Help -> Software Updates -> Find and Install der Installationsassistent gestartet. Nach Auswahl von Search for new features to install muss eine neue Site über "New Remote Site" angelegt werden:  Image Update Location für PDT Im folgenden Dialog wählt man das Eclipse-PDT-Feature komplett aus und führt die Installation zum Ende. Achtung: Die PDT-Tools benötigen als Voraussetzung die Eclipse Web Standard Tools. Diese sind unter http://www.eclipse.org/webtools/wst/main.php erhältlich und müssen vor Installation der PDT-Tools installiert werden. Installation des PDT-Debugtools von ZendDamit Eclipse einen PHP-Debugger steuern kann, muss das entsprechende Plugin installiert werden. Vorgehensweise wie beim PDT-Plugin, allerdings mit folgender (neu anzulegender) Remote Site:  Image Update Location für das PDT Debug Plugin Installation von XDebug2 in XAMPPUm PHP-Applikationen debuggen zu können, muss der PHP-Interpreter um die entsprechende Funktionalität erweitert werden. Dazu lädt man sich zunächst die zur PHP-Version passende Version von XDebug2 von der Projekthomepage unter http://www.xdebug.org/ herunter. Diese DLL wird dann ins Extension-Verzeichnis von PHP kopiert also beispielsweise nach c:\programme\xampp\php\extensions Die Extension muss in PHP noch konfiguriert werden. Dazu in der php.ini folgenden Abschnitt einfügen, um Remote-Debugging von localhost aus zuzulassen: [Zend] zend_extension_ts = "C:\Programme\xampp\php\extensions\php_xdebug-2.0.0-4.4.6.dll" xdebug.remote_enable=1 xdebug.remote_handler=dbgp xdebug.remote_mode=req xdebug.idekey=key xdebug.remote_host=127.0.0.1 Nach einem Neustart von Apache sollte das Debug-Modul dann aktiv sein, erkennbar am entsprechenden Eintrag in der Ausgabe von phpinfo(). Installation von XDebug Helper
Um PHP Webapplikationen zu debuggen, muss jeder URL eine entsprechende Informationen über die aktive Debug-Session mitgegeben werden. Dies funktioniert mit Eclipse für eine einzelne Seite, jedoch über mehrere Seiten hinweg - was insbesondere zum Debuggen von POST- und GET-Requests sehr wichtig ist. Dies erreicht man jedoch mit einem kleinen Tool, das als Firefox-Plugin läuft und diese Debug-Information automatisch an jeden Request anhängt. Dazu installiert man den XDebug Helper als Firefox-Plugin, erhältlich hier. Nach der Installation und Firefox-Neustart muss das Plugin noch konfiguriert werden - dazu wird in den Einstellungen des Add-Ons noch der vorher vergeben idekey (hier: "key") eingetragen. Einrichten des PHP-Projekts in EclipseZuletzt wird noch das Eclipse-Projekt, das zu debuggen ist, eingerichtet. Dazu muss zunächst ein Projekt als PHP-Projekt erstellt werden. (Achtung: Soll ein bereits vorhandenes Projekt, das nicht mit PDT erstellt wurde, debugged werden, muss es als PDT-Projekt neu angelegt und dann mit einer Kopie der Sourcen gefüllt werden.) Dazu muss zunächst die allgemeine PHP-Debug Einstellung auf XDebug gesetzt werden:  Image Eclipse-Einstellungen Danach wird eine Debug-Konfiguration angelegt, in der die erste Seite der zu debuggenden Applikation eingetragen wird:  Image Debug-Konfiguration Hier noch die erweiterten Debug-Einstellungen:  Image Erweiterte Einstellungen der Debug-Konfiguration Damit kann dann die Applikation aus Eclipse heraus gestartet werden (Browser öffnet sich) und - bspw. mit Hilfe von Breapoints etc. - die Anwendung debugged werden. Viel Erfolg! |