PhpStorm XDebug: Schnell PHP-Fehler finden
21. Februar 2014 · Kategorien: Internet, PHP, Webentwicklung

In diesem Artikel wird dir nicht nur erklärt, wie Du in PhpStorm XDebug einrichtest, sondern auch, wie Du auf schnelle Weise Fehler in deinem PHP-Code findest.
Poor Man’s Debugging mit echo und die()
Wie geht man vor, wenn der soeben geschriebene Code nicht richtig funktioniert?
Eine Möglichkeit ist es selbstverständlich, nach und nach die betreffenden Variablen und Methodenrückgabewerte im Browser ausgeben zu lassen. Direkt nach der Ausgabe erfolgt meist ein exit() oder die(), sodass nachfolgender Code und damit folgende Ausgaben nicht stören.
Dieser Weg führt zum Ziel, ist aber nicht selten äußerst zeitaufwändig. Da ein Großteil der Entwicklungsdauer für das Finden von Fehlern benötigt wird, sollte man an dieser Stelle möglichst effizient arbeiten.
Eine weit verbreitete Möglichkeit, das Debuggen zu beschleunigen, ist die Verwendung von XDebug. Da PhpStorm eine gerne genutzte IDE zur Entwicklung von PHP-Scripts ist, erkläre ich am Beispiel, wie man in PhpStorm XDebug einrichtet.
XDebug installieren
XDebug ist eine Erweiterung für PHP, die das Debuggen ermöglicht. Sobald installiert, klingt es sich bei der Ausführung von PHP-Scripts ein, merkt sich Variablen, deren Werte sowie Methodenaufrufe des ausgeführten Scripts und macht es möglich, das Script während seiner Ausführung anzuhalten, um die gemerkten Werte anzuzeigen.
Um XDebug zu installieren, ist sowohl in Ubuntu als auch Mac OS X folgender Befehl notwendig:
sudo pecl install xdebug
Sollte unter Ubuntu pecl nicht gefunden werden, müssen die folgende Pakete installiert werden.
sudo apt-get install php-pear php5-dev libcurl3-openssl-dev
Während der Installation von XDebug wird euch der Pfad zu der Datei xdebug.so angezeigt. Sollte das nicht der Fall sein, kannst Du auch einfach nach der Datei suchen. Aktualisiert dazu zuvor euren Filecache.
File Cache updaten in Ubuntu
sudo updatedb
File Cache updaten in Mac OS X
sudo /usr/libexec/locate.updatedb
Das kann ein paar Sekunden dauern – . Sobald die Aktion ausgeführt wurde, kannst Du sowohl in Ubuntu als auch Mac OS X mit folgendem Befehl nach der PHP-Erweiterung XDebug suchen:
locate xdebug.so
Nun zeigt dir das Terminal nach kurzer Zeit den Pfad an. Auf meinem Mac zum Beispiel lautet er:
/usr/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so
Aber das kann sich von System zu System unterscheiden.
Öffne nun mit root-Rechten Deine php.ini. Auch diese Datei kannst Du wieder mit locate suchen.
Erweitere diese Datei am Ende mit folgenden Zeilen.
Achte darauf, dass Du in der ersten Zeile den soeben ermittelten Pfad richtig angibst.
zend_extension=/usr/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so xdebug.remote_enable=On xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.remote_handler=dbgp
Starte nun Deinen Webserver neu. Sofern Du apache2 installiert hast, funktioniert das folgendermaßen.
Apache unter Ubuntu neustarten
sudo service apache2 restart
Apache unter Mac OS X neustarten
sudo apachectl restart
XDebug in Chrome einrichten
Eine Addon für XDebug gibt es für nahezu jeden Browser. Ich persönlich nutze den XDebug Helper. Nachdem Du das Plugin installiert hast, siehst Du einen kleinen Käfer rechts in der Adresszeile:
Klicke mit der rechten Maustaste auf das Icon und wähle Optionen. Wähle unter IDE Key “Others” und gib im Textfeld rechts daneben PHPSTORM ein:
PhpStorm XDebug einrichten
Öffne zunächst das Projekt in PhpStorm, welches Du debuggen möchtest.
Klicke darauf oben in der Menüzeile auf Run und dann auf Edit Configurations…. Klicke oben links auf das + und wähle PHP Remote Debug:
Gib nun in der rechten Seite einen Namen ein, zum Beispiel XDebug Chrome. Unter “Ide key(session id)” musst Du PHPSTORM eingeben:
Klicke auf den Button [...] neben Servers, gib dort einen Namen ein (zum Beispiel der Name deines Projekts). Unter Host wählst Du die URL zu deiner Webseite, den Port setzt Du auf 80. Als Debugger wählst Du XDebug:
Klicke auf OK, wähle den Server aus und klicke erneut auf OK.
PhpStorm XDebug Chrome: Debuggen
Jetzt, da alles eingerichtet ist, kannst Du mittels XDebug debuggen.
Suche eine Stelle in Deinem PHP-Code, von der du weißt, dass Sie ausgeführt wird. Setze dort einen Breakpoint, indem Du links neben der Zeile in die Seitenleiste klickst. Dort erscheint nun ein roter Punkt. Beachte, dass es sich um keine Leerzeile handeln darf..
Klicke erneut in der Menüleiste auf Run, dann auf den ersten Eintrag Run Name.
Wechsle nun zu Chrome, öffne die URL deiner Seite und aktiviere mit einem Linksklick auf das Käfer-Icon und dann auf Debug das Debugging.
Lade die Seite nun neu. Diesmal wird nicht die gesamte Webseite geladen, sondern PhpStorm wird in den Vordergrund gerückt.
Mit Hilfe von PhpStorm zeigt Dir XDebug nun, wie der aktuelle Schnappschnuss deiner Variablen sowie der Stacktrace aussieht. Du kannst Arrays und Objekte aufklappen, um detaillierte Informationen zu erhalten. Mit dem grünen Pfeil auf der Linken Seite kannst Du zum nächsten Breakpoint oder – wenn kein weiterer Breakpoint gesetzt – zum Ende des Scripts springen. Die Webseite wird dann in Chrome zu Ende geladen.
Wenn Du Fragen hast oder etwas nicht wie gewünscht funktioniert, kannst Du gerne ein Kommentar schreiben.
Autor: Christian Kilb | Kategorien: Internet, PHP, Webentwicklung
Kennst du auch eine Software-Alternative für Windows-Client Rechner? Aktuell nutze ich Notepad++