Wie debugge ich ein Plugin mit Xdebug?


11

Ich konnte NetBeans 6.9.1 und Xdebug ganz einfach in meiner lokalen Umgebung installieren und einrichten, basierend auf PHP 5.3.0 (XAMPP).

Mein Problem ist jetzt das folgende: Wenn ich einen Haltepunkt in Wordpresss index.php oder anderen Wordpress-Kern-PHP-Dateien setze, stoppt NetBeans korrekt an der gewünschten Position. Wenn ich stattdessen einen Haltepunkt in eine Plugin-Datei setze, stoppt ein Trigger der Codeausführung NetBeans hier nicht.

Wissen Sie, wie gelöst werden kann?

UPDATE: Weitere Informationen zu dem, was ich zu debuggen versuche

Das Plugin heißt Vanilla Forums und hat die folgende Dateistruktur:

- plugins
  - vanilla-forums
    + assets
    + nbproject
    + templates
      admin.php
      embed.php
      functions.php
      hooks.php
      plugin.php
      sso.php
      widgets.php

Ich habe den Haltepunkt innerhalb einer Funktion mit dem Namen vf_validate_optionsdefiniert, die in definiert ist functions.php. Ich bin sicher, dass diese Funktion ausgeführt wird, aber NetBeans bricht dort nicht ab.


Wenn Sie eine throw new Exception('die');Anweisung nach der Zeile des Haltepunkts setzen, wird sie dann gestoppt (in dem Sinne, dass dies Ihre Anfrage beendet / beendet)?
hakre

@akre Ja, es löst die Ausnahme aus (ich bin sicher, dass der Code, in dem der Haltepunkt gesetzt ist, ausgeführt wird)
Drake

1
@Drake: Wird dieser Code auf der Hauptseite oder in einem Ajax-Aufruf ausgeführt? Ich glaube, der Xdebug-Debugger muss mit einigen GET- oder POST-Variablen aktiviert werden und setzt dann ein Cookie. Vielleicht ist es nicht für die Ajax-Anforderung aktiviert?
Jan Fabry

1
Ich habe genau das gleiche Problem und kann immer noch keine Lösung finden! Ich benutze nusphere phped, aber ich habe auch Eclipse ohne Ergebnisse ausprobiert! Die einzige Datei, die xdebug am Haltepunkt stoppt, sind die WordPress-Kerndateien. Weder die PHP-Datei des Themas ist debuggbar! Lassen Sie mich wissen, wenn Sie eine Lösung finden, ich habe einen Beitrag im offiziellen WordPress-Forum ohne Antworten gemacht :(
Kreker

1
Ich denke, Jan Fabry ist auf der Lösung. Ich bevorzuge die Verwendung des Firefox-Plugins EasyXdebug , mit dem der XDEBUG_SESSION_STARTAbfrageparameter allen Anforderungen hinzugefügt wird .
Jeff Stieler

Antworten:



1

Mit einer Firebox-Erweiterung Xdebug Helper von Brian Gilbert gibt es eine einfache Lösung . Dadurch werden Cookies für die xdebugSitzung gesetzt, die Sie in xdebugIhren WordPress-Plugins verwenden können.

Es gibt auch Erweiterungen für Chrome, Safari und Opera. Die Links finden Sie auf der xdebug-Website


0

Hi @Drake:

Dumme Frage, ich weiß, aber hast du das Plugin "aktiviert" ? Dort stolpere ich, wenn Plugins nicht debuggt werden.


Ja, das Plugin ist aktiviert. Was ich versuche zu debuggen, ist ein Funktionsauslöser durch ein Menü, das vom Plugin self im Administratorbereich erstellt wurde.
Drake

@Drake - Was ist ein "Funktionsauslöser"? Können Sie bitte Ihren Code als Update für Ihre Frage veröffentlichen?
MikeSchinkel

0

Es gibt keine Möglichkeit, die Dateien des Plugins zu debuggen. Die einzige Möglichkeit, die ich für das Debuggen von WordPress gefunden habe, ist die Verwendung von Nusphere Phped, das leider keine Freeware ist. Das scheint der einzige zu sein, der das kann. Ich weiß nicht warum, aber ich verbringe sehr viel Zeit damit, herauszufinden, wie man mit Netbeans und Eclipse debuggt ... ohne Ergebnisse!


-3

Nun, da WordPress selbst bietet WP_DEBUGund wp_die($msg)... warum sollten Sie mit Xdebug debuggen? Es sei denn, Sie erstellen Ihr Plugin mit einem Framework?


xdebug bietet viele Tools, die WP_DEBUG und Ausgabe nicht - Profiling und Schritt durch Code für den Anfang ...
boisvert

Einverstanden, zu der Zeit hatte ich sehr wenig Wissen über Xdebug.
adrian7
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.