Ich glaube, das ist eine großartige Frage! Wenn Sie nicht wissen, wie Sie das PHP-Debugging angehen sollen, wissen Sie nicht einmal, wie Sie Ihre Frage formulieren sollen, wissen Sie nicht, wie Sie sie genauer formulieren sollen. Es hält sich also vielleicht nicht an die Regeln von Stack, aber es hilft uns Anfängern auf jeden Fall sehr!
– Mihaela Grigore
23. April 2014 um 11:26 Uhr
Ab php5.4 wurde ein neuer Debugger für die Befehlszeilenschnittstelle namens phpdbg eingeführt (phpdbg.com). PHP5.6 wird standardmäßig mit phpdbg geliefert.
– Ganesha Patil
7. Mai 2014 um 5:26 Uhr
Schon mal was von XDebug gehört? 🙂
– Pratik
19. Mai 2015 um 10:42 Uhr
Versuchen Eclipse-PDT zum Einrichten einer Eclipse-Umgebung mit Debugging-Funktionen, wie Sie sie erwähnt haben. Die Möglichkeit, in den Code einzusteigen, ist eine viel bessere Möglichkeit zum Debuggen als die alte Methode von var_dump und an verschiedenen Stellen zu drucken, um zu sehen, wo Ihr Fluss schief geht. Wenn alles andere fehlschlägt und ich nur noch SSH und vim habe var_dump()/die() um herauszufinden, wo der Code nach Süden geht.
Sie sollten diese Funktion verwenden: kill( $data ) { die( var_dump ( $data ) ); } Es spart das Tippen von 10 Zeichen, beste Funktion, die ich je geschrieben habe 🙂
error_reporting(-1);
assert_options(ASSERT_ACTIVE, 1);
assert_options(ASSERT_WARNING, 0);
assert_options(ASSERT_BAIL, 0);
assert_options(ASSERT_QUIET_EVAL, 0);
assert_options(ASSERT_CALLBACK, 'assert_callcack');
set_error_handler('error_handler');
set_exception_handler('exception_handler');
register_shutdown_function('shutdown_handler');
function assert_callcack($file, $line, $message) {
throw new Customizable_Exception($message, null, $file, $line);
}
function error_handler($errno, $error, $file, $line, $vars) {
if ($errno === 0 || ($errno & error_reporting()) === 0) {
return;
}
throw new Customizable_Exception($error, $errno, $file, $line);
}
function exception_handler(Exception $e) {
// Do what ever!
echo '<pre>', print_r($e, true), '</pre>';
exit;
}
function shutdown_handler() {
try {
if (null !== $error = error_get_last()) {
throw new Customizable_Exception($error['message'], $error['type'], $error['file'], $error['line']);
}
} catch (Exception $e) {
exception_handler($e);
}
}
class Customizable_Exception extends Exception {
public function __construct($message = null, $code = null, $file = null, $line = null) {
if ($code === null) {
parent::__construct($message);
} else {
parent::__construct($message, $code);
}
if ($file !== null) {
$this->file = $file;
}
if ($line !== null) {
$this->line = $line;
}
}
}
Danke. Das hat meinen Tag gerettet. (Ich musste nur das E_STRICT entfernen)
– Sek
5. Juni 2013 um 15:24 Uhr
assert_callcack ha
– Madbreaks
28. Dezember 2015 um 22:48 Uhr
Xdebug und das DBGp-Plug-In für Notepad++ für die schwere Fehlersuche, FirePHP für leichtes Zeug. Schnell und dreckig? Nichts schlägt dBug.
XDebug ist für die Entwicklung unabdingbar. Ich installiere es vor jeder anderen Erweiterung. Es gibt Ihnen Stack-Traces für jeden Fehler und Sie können die Profilerstellung einfach aktivieren.
Für einen schnellen Blick auf eine Datenstruktur use var_dump(). Nicht verwenden print_r() weil Sie es mit umgeben müssen <pre> und es wird immer nur eine var ausgegeben.
<?php var_dump(__FILE__, __LINE__, $_REQUEST); ?>
Für eine echte Debugging-Umgebung ist das Beste, was ich gefunden habe Komodo-IDE aber es kostet $$.
PhpEd ist wirklich gut. Sie können in/über/aus Funktionen springen. Sie können Ad-hoc-Code ausführen, Variablen untersuchen und Variablen ändern. Es ist erstaunlich.
1) Ich verwende print_r(). In TextMate habe ich ein Snippet für ‘pre’, das sich folgendermaßen erweitert:
echo "<pre>";
print_r();
echo "</pre>";
2) Ich verwende Xdebug, aber ich konnte die GUI auf meinem Mac nicht richtig zum Laufen bringen. Es druckt zumindest eine lesbare Version des Stack-Trace aus.
Du meinst sicher echo ““; am Ende aber.
– alternativ
29. Juli 2009 um 13:18 Uhr
Sie können der Funktion auch „true“ übergeben, damit sie den String zurückgibt. Das bedeutet, dass Sie Folgendes tun können: echo '<pre>', print_r($var, true), '</pre>';
– Verärgerte Ziege
21. Juli 2010 um 11:24 Uhr
9864100cookie-checkWie debuggen Sie PHP-Skripte? [closed]yes
Siehe auch: stackoverflow.com/questions/4640421/…
– kenorb
8. August 2013 um 9:10 Uhr
Lokales Debuggen in Win/Mac (mit einem WAMP/MAMP-Stack und PHPStorm)
– Sliq
1. Februar 2014 um 17:07 Uhr
Ich glaube, das ist eine großartige Frage! Wenn Sie nicht wissen, wie Sie das PHP-Debugging angehen sollen, wissen Sie nicht einmal, wie Sie Ihre Frage formulieren sollen, wissen Sie nicht, wie Sie sie genauer formulieren sollen. Es hält sich also vielleicht nicht an die Regeln von Stack, aber es hilft uns Anfängern auf jeden Fall sehr!
– Mihaela Grigore
23. April 2014 um 11:26 Uhr
Ab php5.4 wurde ein neuer Debugger für die Befehlszeilenschnittstelle namens phpdbg eingeführt (phpdbg.com). PHP5.6 wird standardmäßig mit phpdbg geliefert.
– Ganesha Patil
7. Mai 2014 um 5:26 Uhr
Schon mal was von XDebug gehört? 🙂
– Pratik
19. Mai 2015 um 10:42 Uhr