Wie debuggen Sie PHP-Skripte? [geschlossen]

  • Wie debuggen Sie PHP-Skripts ?

    Ich kenne grundlegendes Debugging, z. B. die Verwendung des Fehlerberichts. Das Breakpoint-Debugging in PHPEclipse ist ebenfalls sehr nützlich.

    Was ist der beste (schnelle und einfache) Weg in phpStorm oder einer anderen IDE debuggen?

    04 June 2015
    itj
30 answers
  • Versuchen Sie Eclipse PDT , um eine Eclipse-Umgebung einzurichten, die die von Ihnen genannten Debugging-Funktionen enthält. Die Möglichkeit, in den Code einzusteigen, ist eine viel bessere Methode zum Debuggen als die alte Methode von var_dump und das Drucken an verschiedenen Stellen, um zu sehen, wo der Fluss schief geht. Wenn jedoch alles andere fehlschlägt und ich nur noch SSH und vim habe, muss ich immer noch var_dump() / die() finden, wo der Code nach Süden geht.

    02 March 2016
    Liedman
  • Sie können Firephp, ein Add-On für Firebug, verwenden, um PHP in derselben Umgebung wie Javascript zu debuggen.

    Ich verwende auch Xdebug wurde bereits erwähnt, um PHP zu profilieren.

    07 October 2015
    3 revs, 3 users 67%Pat
  • 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;
            }
        }
    }
     
    05 June 2013
    2 revseisberg
  • Xdebug und das DBGp-Plugin für Notepad ++ für die Suche nach starkem Fehler, FirePHP für leichtes Zeug. Schnell und dreckig? Nichts geht über dBug .

    16 September 2008
    djn
  • XDebug ist für die Entwicklung unerlässlich. Ich installiere es vor jeder anderen Erweiterung. Sie erhalten Stack-Traces für jeden Fehler und Sie können die Profilerstellung einfach aktivieren.

    Für einen schnellen Blick auf eine Datenstruktur verwenden Sie var_dump() . Verwenden Sie print_r() nicht, da Sie es mit <pre> umgeben müssen, und es wird jeweils nur eine Variation gedruckt.

     <?php var_dump(__FILE__, __LINE__, $_REQUEST); ?>
     

    Für eine echte Debugging-Umgebung ist das Beste, was ich gefunden habe, Komodo IDE , aber es kostet $$.

    15 December 2014
    3 revs, 3 users 92%Julio César
  • PhpEd ist wirklich gut. Sie können in Funktionen ein- / aussteigen. Sie können Ad-hoc-Code ausführen, Variablen prüfen und Variablen ändern. Es ist erstaunlich.

    05 February 2009
    Alberto
  • 1) Ich benutze print_r (). In TextMate habe ich einen Ausschnitt für 'pre', der sich folgendermaßen erweitert:

     echo "<pre>";
    print_r();
    echo "</pre>";
     

    2) Ich verwende Xdebug , aber ich konnte die grafische Benutzeroberfläche nicht richtig auf meinem Mac verwenden. Es gibt mindestens eine lesbare Version des Stack-Trace aus.

    30 July 2009
    kenderNirzar Gandhi
  • Ehrlich gesagt, eine Kombination aus print und print_r (), um die Variablen auszudrucken. Ich weiß, dass viele andere fortgeschrittenere Methoden bevorzugen, aber ich finde, dass dies am einfachsten zu verwenden ist.

    Ich werde sagen, dass ich dies nicht vollständig verstanden habe, bis ich etwas Mikroprozessor-Programmierung durchgeführt habe an der Uni und konnte nicht einmal dies verwenden.

    05 August 2008
    Teifion
  • Ich habe das Zend Studio (5.5) zusammen mit Zend Platform . Dies führt zu korrektem Debugging, Haltepunkten / Überschreiten des Codes usw., allerdings zu einem Preis.

    04 August 2008
    Eldila
  • Xdebug von Derick Rethans ist sehr gut. Ich habe es vor einiger Zeit benutzt und fand es nicht so einfach zu installieren. Wenn Sie fertig sind, werden Sie nicht verstehen, wie Sie ohne es geschafft haben: -)

    Es gibt einen guten Artikel über Zend Developer Zone (Die Installation unter Linux scheint nicht einfacher zu sein) und sogar ein Firefox-Plugin , das ich nie verwendet habe.

    05 August 2008
    AnInquiringMind