debuggen eclipse-PDT zend
carsten schlichting
- php
0 dedlfix0 carsten schlichting0 dedlfix
0 flowh
Hallo
benutze den eclipse_Editor (PDT2.0 + Zend-debugger) um PHP zu programmieren und habe mal eine grundlegende Frage zum Debuggen ... ich glaube, dass ich hier nicht alles richtig kapiert habe oder besser gesagt, wohl noch nicht richtig hinter alle Möglichkeiten gekommen bin.
Momentan habe ich mir selber eine debugKLasse geschrieben, die ich in jede Funktion schreibe und die mir so alle Variablen, die ich benötige , usw. aus der Funktion rausholt und dann in eine extra_datei schreibt. Der große Nachteil ist allerdings, dass in jeder Funktion extra meine debugFunktion aufgerufen werden muß.
Ist das was ich bisher tue eventuell überflüssig? bzw kann ich mir mit dem PDT/Zend debugger auch alles aus der Funtion holen, was ich benötige?
Mit den PHP_eigenen debugger Funktionen hat man ja das problem, dass man sie ersteinmal in eine andere Datei schreiben muß? und so gehe ich ja bisher vor.
Hat dieses PDT in eclipse eventuell eine Möglichleit, den PHP server zu simuieren und das PHPscript schritt für schritt durchzugehen, gleichzeitig mit der Möglichkeit alle Varibeln während dieses Prozesses zu beobachten.
grüße carsten
echo $begrüßung;
benutze den eclipse_Editor (PDT2.0 + Zend-debugger) um PHP zu programmieren und habe mal eine grundlegende Frage zum Debuggen ... ich glaube, dass ich hier nicht alles richtig kapiert habe oder besser gesagt, wohl noch nicht richtig hinter alle Möglichkeiten gekommen bin.
Ich auch nicht, weil ich mir das noch nicht angesehen habe. Es ist schon eine Weile her, als ich mich mit den PHP-Debuggern beschäftigte. Ich fand sie für mich nicht brauchbar und hatte mir einen Error-Handler geschrieben, der die Informationen mit Javascript aufbereitet anzeigte. Nicht selten fallen große Informationsmengen an, bei denen ein Wegklappen-Können sehr zur Übersicht beträgt.
Momentan habe ich mir selber eine debugKLasse geschrieben, die ich in jede Funktion schreibe und die mir so alle Variablen, die ich benötige , usw. aus der Funktion rausholt und dann in eine extra_datei schreibt. Der große Nachteil ist allerdings, dass in jeder Funktion extra meine debugFunktion aufgerufen werden muß.
Was du da machst und warum, erschließt sich mir nicht ganz.
Ist das was ich bisher tue eventuell überflüssig? bzw kann ich mir mit dem PDT/Zend debugger auch alles aus der Funtion holen, was ich benötige?
Die Frage ist, was benötigst du denn? Im Falle eines Fehlers benötigt man den aktuellen Kontext und den Aufruf-Stack. Mit set_error_handler() kann man einen eigenen Error-Handler ins Spiel bringen. Wenn dieser aufgerufen wird, bekommst du unter anderem alle lokalen Variablen übergeben. Mit debug_backtrace() bekommst du alle Funktionsaufrufe inklusive den dabei übergebenen Parameterwerten.
Mit den PHP_eigenen debugger Funktionen hat man ja das problem, dass man sie ersteinmal in eine andere Datei schreiben muß? und so gehe ich ja bisher vor.
Andere Datei? Was meinst du damit?
Hat dieses PDT in eclipse eventuell eine Möglichleit, den PHP server zu simuieren und das PHPscript schritt für schritt durchzugehen, gleichzeitig mit der Möglichkeit alle Varibeln während dieses Prozesses zu beobachten.
Normalerweise bieten die Debugger der IDEs die Möglichkeit, schrittweise durch ein Script zu gehen und sich dabei die Werte der Variablen anzeigen zu lassen. Das sollte PDT auch bieten. Mitunter ist das aber nur bis zu einem gewissen Punkt zu gebrauchen, weil die Debugger ihr eigenes PHP mitbringen. Man hat in dem Fall leider nicht die Umgebung zur Verfügung, in der das Script normalerweise läuft. Beispielsweise kann man zwar ein Script starten, aber keinen POST-Request absetzen. Ob PDT hier besser ist als die Konkurrenz?
echo "$verabschiedung $name";
Hallo
bei einem eclipse-update ist irgendetwas schiefgelaufen und der debugger konnte so gar nicht funktionieren.
Nachdem ich nun in eclipse-PDT alle php-projekte neu angelegt habe , ist plötzlich der debugger da und funktioniert ...die Hilfe ist auch gut erklärt, weil eigentlich alles nicht so kompliziert ist.
nur schade, dass man im debugger nicht zurückgehen kann!!!
Kann diesen freeware-PHP-Debugger allen empfehlen -- warum bin ich da nur jetzt erst drauf gestoßen???
Viele Grüße
carsten
echo $begrüßung;
nur schade, dass man im debugger nicht zurückgehen kann!!!
So einen Debugger habe ich noch nie gesehen. Rückwärts gehen zu können bedeutete, dass für jeden Schritt mindestens sämtliche Änderungen mitgeschrieben werden müssen, wenn nicht gar ein komplettes Abbild der Prozessumgebung, um wieder auf den Stand von vorhin zurückkehren zu können.
Kann diesen freeware-PHP-Debugger allen empfehlen -- warum bin ich da nur jetzt erst drauf gestoßen???
Der Aufwand einer IDE lohnt sich erst ab einem gewissen Umfang der PHP-Programmierung. Für die einfachen Wald- und Wiesenscripte reicht meist Kontrollausgaben-Debugging.
echo "$verabschiedung $name";
Hallo dedlfix.
Mitunter ist das aber nur bis zu einem gewissen Punkt zu gebrauchen, weil die Debugger ihr eigenes PHP mitbringen. Man hat in dem Fall leider nicht die Umgebung zur Verfügung, in der das Script normalerweise läuft.
Dafür gibt es z.B. die PHP-Extension xdebug, die man auf dem Testserver installieren kann und zu der man sich remote mit einem geeigneten Client (z.B. Eclipse Plugin) verbindet.
Somit läuft das Script in seiner gewohnten Umgebung auf dem Server und kann dort debuggt werden.
Servus,
Flo