Besseres Debugging in PHP

Besseres Debugging in PHP

Debugging in PHP ist das größte Arschloch von allen nicht schön. Wohl dem, der einigen Aufwand betrieben hat, um XDebug an den Start zu kriegen. Aber leider ist es in der Regel so, das auf Produktiv-Servern aus Performance-Gründen XDebug eben nicht zum Einsatz kommt. Man endet dann immer wieder bei var_dump() und regelmäßigen Krisenzuständen wegen schlechter Formatierung der Ausgabe. Natürlich gibt es auch entsprechende Libraries um dagegen zu steuern. Bis hin zum automatischen Einblenden von Fehlermeldungen in der Konsole des Browsers.

Bessere var_dump() Anzeige für PHP

Sehr interessant ist das Aufwerten von var_dump() mit der Klasse Kint. Kint erkennt selbständig welchen Typ eine Variable besitzt und passt die Ausgabe entsprechend an. Interessant ist an der Stelle Kint mittels Modul automatisch in ein Framework einzubinden. Man kann es so einfach Einschalten/Ausschalten oder einfach an den Server-Status koppeln (Development / Production). Sehr feine Sache wie ich finde, die es ermöglicht innerhalb der Variablen zu navigieren, und insbesondere die Ausgabe von sehr großen Arrays und Objekten lesbar gestaltet.

Ich denke der eine oder andere von euch kann so etwas gebrauchen! Und hört auf var_dump() zu verwenden, die Ausgabe ist nicht nur schlimm, sondern auch nicht mehr zeitgemäß. Ich verstehe sowieso nicht, wieso Zend gerade an der Stelle nichts unternimmt. Jede höhere Programmiersprache verfügt über einen Debugger und einen Profiler – und jetzt erzählt mir keinen vom Zend Server und der Zend IDE, die sind auch beide nicht sinnvoll nutzbar! ;) Wie ihr seht ist Debugging in PHP eigentlich ganz einfach – man muss es nur richtig einsetzen.

Ein Kommentar

  • Solange man alle seine Projekte in der Versionsverwaltung eingecheckt und via automatischem db-sync dafür sorgt, dass die Datenbank lokal und auf dem Server auf einem Stand sind, habe ich bisher keine Schwierigkeiten mit dem Debuggen / Profilen von PHP-Skripten.

    -> lokal bzw. mit einer Admin-Session auf den Staging-System kann man z.B. xDebug, „Logging“-Klasse (extra logfile für z.B. PHP errors / warnings, db-queries), „PHP-Error-Handler“-Function, debug-parameter, etc. verwenden

Schreibe einen Kommentar