Wer kennt nicht solche Situationen: man entwickelt ein Script, testet es lokal und alles läuft wie es soll. Kaum hat man das Script auf ein anderes System übertragen kommt es zu seltsamen Nebeneffekten. Normalerweise fängt man nun an mit print_r() oder var_dump() an Variablen zu verfolgen um zu prüfen was genau passiert. Oft reichen dafür die normalen PHP Funktionen, aber manchmal wünscht man sich mehr Übersicht. An dem Punkt setzen die Lösungen an, die ich im folgenden vorstelle:
dBug
dBug von Kwaku Otchere ist eine PHP-Portierung von ColdFusion’s cfdump(). Am ehesten ist es vergleichbar mit print_r() bietet aber einige zusätzliche Features. Die von dBug erzeugten Tabellen sind mittels CSS und JavaScript einklappbar und sowohl Datenbank- als auch XML-Objekte werden automatisch struktuiert angezeigt.
krumo
krumo functioniert ähnlich wie dBug. Allerdings ist die Darstellung meiner Meinung nach etwas unübersichtlicher. Ausserdem ist der Funktionsumfang gegenüber dBug geringer, da XML- und Datenbank-Objekte nicht automatisch analysiert werden.
debugConsole
debugConsole geht weg von dem print_r()/var_dump() Ansatz. Bindet man DC in ein Projekt ein, kann man in Echtzeit Nachrichten ausgeben, Variablen-Inhalte automatisch auf Veränderung überwachen (dies ist leider nicht und Windows möglich), etc.
DC öffnet hierzu ein Pop-Up Fenster in dem die Ausgaben in dem Augenblick erscheinen in dem sie im Code auftauchen (und nicht erst nachdem das Script komplett gelaufen ist). Der Einzige Nachteil dieser Lösung ist.
PHP_Debug
Natürlich findet sich im PEAR eine eigene Lösung für das Thema Debugging. Das Paket nennt sich PHP_Debug und funktioniert ähnlich wie debugConsole. Allerdings funktioniert es nicht über ein unabhängiges PopUp-Fenster sondern nutzt ein DIV, welches der eigenen Seite überlagert wird. Es können Nachrichten geloggt, Variablen ausgegeben werden und Benchmarks erzeugt werden.^
Sonstiges
Natürlich ersetzen die hier vorgestellten Lösungen keine echten Debugger wie z.B. DBG – können allerdings trotzdem sehr hilfreich bei der Fehlersuche sein wenn man nur begrenzten Zugang zum Server hat.




[...] via Debugging in PHP [...]