Übersichtliches Debugging mit Kint

Wer in PHP keinen Debugger zur Verfügung hat, um direkt in der bevorzugten IDE nach Fehlern suchen zu können wird schnell bei der Funktion var_dump() landen.

Auch wenn die XDebug-Extension den Output von var_dump() einigermaßen aufhübscht, kommt man doch um eine eigene Formatierung mittels „<pre>“ selten umher.

Bei großen und komplexen Datenstrukturen wie z.B. einer Klasse oder mehrfach verschachtelten Arrays wird die Ausgabe sehr schnell unübersichtlich.
Man ist dann schnell geneigt die Ausgabe auf das Wesentliche zu reduzieren, oder der Klasse eine eigene Dump-Methode zu spendieren, die nur die wesentlichen Informationen anzeigen soll.

Doch es geht auch einfacher!

Klassische Debug-Ausgabe von var_dump().
Auch mit der XDebug-Extenion sieht sie nicht gerade vielversprechend aus.

Hier kommt Kint (http://github.com/raveren/kint) ins Spiel.

Mit Kint wird die Ausgabe übersichtlich strukturiert. JavaScript und CSS ermöglichen es zudem, das Ganze zunächst platzsparend anzuzeigen. Mit einem Klick auf die Ausgabe wird diese ausgeklappt und die Datenstruktur wird angezeigt.

Wer einen Debug-Output im Source-Code vergisst, und diesen auf den Live-Server deployed, gerät schnell in Hektik, diesen Fauxpas schnellst möglich zu korrigieren. Diese Zeiten sind vorbei!

Auch wenn Kint standardmäßig aktiviert ist, so kann die Ausgabe auf eine bestimmte IP-Adresse beschränkt werden:

Debug-Ausgabe mit Kint.
Übersichtlich, aufgeräumt – da findet man sich schnell zurecht.

„Kint – a modern and powerful PHP debugging helper“

Neben der übersichtlicheren Debugging-Ausgabe, bringt Kint auch einige kleine Helfer mit.

Mit „ddd(<var>);“ wird z.B. das allseits geliebte/gehasste „var_dump(<var>); die();“ ersetzt.
Wem das originale hellblaue Theme nicht gefällt, kann auf eines der 4 anderen ausweichen, oder mittels CSS sein ganz individuelles Theme erschaffen.

Auch die standardmäßige Rekursionstiefe von 7 Ebenen kann angepasst werden.

Wer aufmerksam hingeschaut hat, dem ist auch aufgefallen, das die Angabe in $colorData einen Hex-Wert enthält. Hier stellt Kint zusätzliche Informationen zur Verfügung. Das funktioniert auch mit Zeitangaben wie z.B. durch die Funktion microtime().

Ich hoffe, dass ich dem ein oder anderen mit diesem Beitrag helfen konnte, etwas mehr Übersicht in die Debug-Ausgabe zu bringen.
Natürlich ersetzt Kint keinen vollwertigen Debugger einer IDE. Aber dafür ist er auch nicht angetreten.

Hier der komplette Quellcode, der die Debug-Ausgaben erzeugt hat: