Come eseguire il debug di un plug-in con Xdebug?


12

Sono stato in grado di installare e configurare abbastanza facilmente NetBeans 6.9.1 e Xdebug sul mio ambiente locale, basato su PHP 5.3.0 (XAMPP).

Il mio problema ora è il seguente: se inserisco un breakpoint nell'indice.php di Wordpress o in altri file PHP core di Wordpress, NetBeans si ferma correttamente nella posizione desiderata. Se invece inserisco un breakpoint in un file plugin, un trigger l'esecuzione del codice NetBeans non si ferma qui.

Sai come si può risolvere?

AGGIORNAMENTO: Ulteriori informazioni su ciò che sto cercando di eseguire il debug

Il plugin si chiama Vanilla Forums e ha la seguente struttura di file:

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

Ho impostato il punto di interruzione all'interno di una funzione denominata vf_validate_optionsdefinita in functions.php. Sono sicuro che questa funzione sia eseguita, ma NetBeans non si interrompe lì.


Se inserisci throw new Exception('die');un'istruzione dopo la linea del punto di interruzione, si interrompe (nel senso che questo uccide / termina la tua richiesta)?
Hakre,

@hakre Sì, genera l'eccezione (sono sicuro che il codice in cui è impostato il punto di interruzione viene eseguito)
Drake

1
@Drake: questo codice viene eseguito nella pagina principale o in una chiamata Ajax? Credo che il debugger Xdebug debba essere abilitato con alcune variabili GET o POST e quindi imposta un cookie, forse non è abilitato per la richiesta Ajax?
Jan Fabry,

1
Ho lo stesso identico problema e non riesco ancora a trovare una soluzione! Sto usando nusphere phped ma ho provato anche Eclipse senza risultati! L'unico file che xdebug si ferma sul punto di interruzione sono i file "core" di wordpress. Né il file php del tema è debugabile! Fammi sapere se trovi una soluzione, ho pubblicato un post sul forum ufficiale di wordpress senza risposte :(
Kreker

1
Penso che Jan Fabry sia sulla soluzione. Preferisco usare il plugin Firefox EasyXdebug , che aggiungerà il XDEBUG_SESSION_STARTparametro query a tutte le richieste.
Jeff Stieler,

Risposte:



1

Esiste una soluzione semplice con l'estensione Firebox Xdebug Helper di Brian Gilbert . Questo imposta i cookie per la xdebugsessione che ti consente di utilizzare xdebugall'interno dei tuoi plugin WordPress.

Ci sono anche estensioni per Chrome, Safari e Opera. I collegamenti sono disponibili sul sito Web xdebug


0

Ciao @Drake:

Domanda stupida, lo so, ma hai "attivato" il plugin? È qui che inciampo quando i plug-in non vengono sottoposti a debug.


Sì, il plugin è attivato. Quello che sto cercando di eseguire il debug è un trigger di funzione da un menu creato dal plugin stesso nell'area dell'amministratore.
Drake,

@Drake - Che cos'è un "trigger di funzione?" Puoi per favore pubblicare il tuo codice come aggiornamento della tua domanda?
MikeSchinkel,

0

non è possibile eseguire il debug dei file del plug-in. L'unico modo che ho trovato per il debug di wordpress è usare nusphere phped che, sfortunatamente, non è freeware. Sembra che l'unico possa farlo, non so perché, ma passo molto tempo a capire come eseguire il debug con netbeans ed eclissi ... senza risultati!


-3

Bene, dato che WordPress stesso fornisce WP_DEBUGe wp_die($msg)... perché dovresti eseguire il debug con Xdebug? A meno che tu non stia costruendo il tuo plugin usando un framework?


xdebug offre molti strumenti che WP_DEBUG e l'output non
offrono

D'accordo, all'epoca avevo pochissime conoscenze su Xdebug.
Adrian7,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.