402 Stimmen

Wie kann man PHP-Skripte debuggen?

Wie debuggen Sie PHP Drehbücher?

Ich bin mit der grundlegenden Fehlersuche vertraut, z. B. mit der Fehlerberichterstattung. Die Haltepunkt-Fehlersuche in PHPEclipse ist ebenfalls sehr nützlich.

Was ist die am besten (im Sinne von schnell und einfach) in phpStorm oder einer anderen IDE zu debuggen?

1voto

In einer Produktionsumgebung protokolliere ich relevante Daten im Fehlerprotokoll des Servers mit error_log().

0voto

Joshi Spawnbrood Punkte 525

Normalerweise erstelle ich eine benutzerdefinierte Protokollfunktion, die in der Lage ist, in einer Datei zu speichern, Debug-Informationen zu speichern und schließlich in einer gemeinsamen Fußzeile wiederzugeben.

Sie können auch die allgemeine Klasse Exception überschreiben, so dass diese Art der Fehlersuche halbautomatisch ist.

0voto

Michael Luton Punkte 17

Die integrierten Debugger, mit denen man beobachten kann, wie sich die Werte von Variablen ändern, während man durch den Code schreitet, sind wirklich cool. Sie erfordern jedoch eine Software-Einrichtung auf dem Server und ein gewisses Maß an Konfiguration auf dem Client. Beides muss regelmäßig gewartet werden, um die Funktionsfähigkeit zu erhalten.

Ein print_r ist einfach zu schreiben und funktioniert garantiert in jedem Setup.

0voto

Eric Lamb Punkte 1414

Je nach Problem mag ich eine Kombination aus error_reporting(E_ALL) gemischt mit echo-Tests (um die beanstandete Zeile/Datei zu finden, in der der Fehler anfänglich auftrat; Sie wissen, dass es nicht immer die Zeile/Datei ist, die php Ihnen mitteilt, richtig?), IDE-Klammerabgleich (um "Parse-Fehler: Syntaxfehler, unerwartetes $Ende"-Probleme zu beheben) und print_r(); exit; Dumps (echte Programmierer sehen sich den Quellcode an ;p).

Auch phpdebug (siehe sourceforge) mit "memory_get_usage();" und "memory_get_peak_usage();" ist unschlagbar, um die Problembereiche zu finden.

0voto

Polsonby Punkte 22635

+1 für print_r(). Verwenden Sie diese Funktion, um den Inhalt eines Objekts oder einer Variablen auszugeben. Um es besser lesbar zu machen, tun Sie es mit einem pre-Tag, so dass Sie nicht brauchen, um die Quelle zu sehen.

echo '<pre>';
print_r($arrayOrObject);

Auch var_dump($thing) - dies ist sehr nützlich, um den Typ der Unterelemente zu sehen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X