Wie debuggen Sie PHP-Skripte? [closed]

Lesezeit: 4 Minuten

Wie debuggen Sie PHP Skripte?

Ich kenne grundlegendes Debugging wie die Verwendung der Fehlerberichterstattung. Das Breakpoint-Debugging in PHPEclipse ist auch ganz brauchbar.

Was ist der Beste (in Bezug auf schnelle und einfache) Möglichkeit zum Debuggen in phpStorm oder einer anderen IDE?

  • Siehe auch: stackoverflow.com/questions/4640421/…

    – kenorb

    8. August 2013 um 9:10 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

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 🙂

    – AlexMorley-Finch

    5. April 2012 um 0:05 Uhr


  • Versuchen github.com/tomasfejfar/enhanced-dump 🙂

    – Tomáš Fejfar

    17. Februar 2014 um 10:09 Uhr

  • Gibt es eine Möglichkeit, den “var_dump” zu verschönern?

    – RPDeshaies

    12. März 2014 um 20:36 Uhr

  • @AlexMorley-Finch Ich erhebe dich zu kill($data) { echo "<pre>"; var_dump($data); echo "</pre>"; exit; }

    – Francisco Presencia

    4. Januar 2015 um 19:29 Uhr

  • Link ist “wiederherstellbar” über die unglaubliche Webarchivletzte Prüfung am 7. Mai ’15.

    – Gruber

    1. Februar 2016 um 21:21 Uhr

Sie können Firephp, ein Add-on für Firebug, verwenden, um PHP in derselben Umgebung wie Javascript zu debuggen.

benutze ich auch Xdebug zuvor für die Profilerstellung von PHP erwähnt.

Dies ist meine kleine Debug-Umgebung:

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

986410cookie-checkWie debuggen Sie PHP-Skripte? [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy