Ich sehe immer wieder, dass viele Entwickler PHP Skripte schreiben ohne einen Debugger zu benutzen. Dabei ist ein Debugger nicht nur äußerst hilfreich, sondern erleichtert einem auch die tägliche Arbeit enorm. Die Voraussetzung um PHP zu debuggen ist, dass eine Debugger Erweiterung installiert ist. Eine der bekannteste dürfte xdebug sein. Die Installation der Erweiterung ist von System zu System unterschiedlich und setzt in der Regel einige Kenntnisse im Umgang mit einer Serverumgebung wie Apache voraus. Zum Glück gibt es hier sehr hilfreiche Tutorials, wie die von uns auf unseren Systemen verwendete Anleitung zur Einrichtung eines LAMP Stacks mittels homebrew für MacOS:  https://getgrav.org/blog/macos-sierra-apache-multiple-php-versions für MacOS Systeme. Für fertige LAMP Stacks, wie XAMP oder MAMP sollte man mit der Googlesuche eigentlich auch schnell fündig werden.

Im Grunde gibt es nun drei Möglichkeiten PHP Skripte auszuführen: Im Browser, in einem Tool (wie zum Beispiel einem RestClient, a la Postman) oder auf der Kommandozeile. Alles gängige und häufig auftretende Anwendungsfälle. Im folgenden erläutere ich hier die Verwendung des Debuggers mit der Entwicklungsumgebung IntelliJ (PHPStorm). In anderen IDEs können die Schritte ähnlich sein.

Im Browser:

Zunächst sollte man für den Browser seiner Wahl ein PHP xDebug Helfer Addon installieren. In der Regel wird das Addon neben der Adressleiste als kleiner Käfer dargestellt, den man aktivieren muss. In IntelliJ klickt man einfach in der Werkezugleiste auf das kleine Telefon, um auf eingehende PHP Debugnachrichten zu lauschen.

Wenn man dann in einem Skript einen Breakpoint setzt und das Skript in der Seite neu lädt sollte das aktuelle Skript am Breakpoint gestoppt werden und man kann im Debugtab bekannte Debugmechanismen nutzen, welche in ihrer Funktionalität in der IntelliJ Anleitung erklärt werden.

 

In externer Anwendung:

Ich nutze hier zum Testen von REST Schnittstellen gern einen Restclient wie Postman oder CocoaRestClient. Um von hier aus PHP Skripte zu debuggen, muss man an die jeweilige URI einfach den GET Parameter XDEBUG_SESSION_START=PHPSTORM  anhängen. Die kleinen Browser Helferlein machen eigentlich nichts anderes als diesen GET Parameter versteckt an eine URI anzuhängen, wenn man im Browser debuggt.

Von der Kommandozeile:

Kleine Shellskripte lassen sich häufig auch sehr angenehm mit PHP umsetzen, wie beispielsweise die hilfreichen cakePHP Shells. Auch hier gibt es natürlich die Möglichkeit diese Skripte dann vernünftig zu debuggen. Einfach den folgenden Befehl vor den Skriptaufruf setzen: XDEBUG_CONFIG="profiler_enable=1" . Das Ganze sieht dann für eine cakePHP Shell so aus:  XDEBUG_CONFIG="profiler_enable=1" bin/cake MyShell .

Das Entwickeln von PHP Skripten mit xDebug ist ein mächtiges Hilfsmittel, welches einem endlos lange var_dump() oder debug() Tiraden erspart und insgesamt schnelleres, effizienteres Arbeiten ermöglicht.



Kategorien: Tutorials
Tags: /

28. August 2017
Sebastian Köller

Verfasst von
Sebastian Köller