Como depurar um plugin com o Xdebug?


12

Consegui instalar e configurar com bastante facilidade o NetBeans 6.9.1 e o Xdebug no meu ambiente local, com base no PHP 5.3.0 (XAMPP).

Meu problema agora é o seguinte: se eu colocar um ponto de interrupção no index.php do Wordpress ou em outros arquivos PHP principais do Wordpress, o NetBeans parará corretamente na posição desejada. Se, em vez disso, eu colocar um ponto de interrupção em um arquivo de plug-in, um gatilho para a execução do código, o NetBeans não pára por aí.

Você sabia como pode ser resolvido?

UPDATE: Mais informações sobre o que estou tentando depurar

O plug-in é chamado Fóruns da Vanilla e tem a seguinte estrutura de arquivos:

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

Defino o ponto de interrupção dentro de uma função denominada vf_validate_optionsdefinida em functions.php. Tenho certeza de que essa função é executada, mas o NetBeans não quebra lá.


Se você colocar uma throw new Exception('die');declaração após a linha do ponto de interrupção, ela será interrompida (no sentido de que isso mata / termina sua solicitação)?
hakre

@hakre Sim, ele lança a exceção (Estou certo de que o código onde o ponto de interrupção é definido é executado)
Drake

11
@ Drake: Esse código é executado na página principal ou em uma chamada do Ajax? Eu acredito que o depurador do Xdebug deve ser ativado com algumas variáveis ​​GET ou POST e, em seguida, define um cookie, talvez ele não esteja ativado para a solicitação do Ajax?
Jan Fabry

11
Eu tenho exatamente o mesmo problema e ainda não consigo encontrar uma correção! Estou usando o php nusphere, mas tentei o Eclipse também sem resultados! O único arquivo que o xdebug para no ponto de interrupção é o arquivo "core" do wordpress. Nem o arquivo php do tema é depurável! Deixe-me saber se você encontrar uma solução, eu fiz um post no fórum oficial wordpress sem respostas :(
Kreker

11
Acho que Jan Fabry está na solução. Prefiro usar o plugin EasyXdebug do Firefox , que adicionará o XDEBUG_SESSION_STARTparâmetro de consulta a todas as solicitações.
precisa

Respostas:



1

Existe uma solução fácil com uma extensão do Firebox, Xdebug Helper, de Brian Gilbert . Isso define cookies para a xdebugsessão, que permite que você use xdebugem seus plugins do WordPress.

Existem também extensões para Chrome, Safari e Opera. Os links podem ser encontrados no site xdebug


0

Olá @Drake:

Pergunta estúpida, eu sei, mas você "ativou" o plugin? É aí que eu tropeço quando os plug-ins não estão sendo depurados.


Sim, o plug-in está ativado. O que estou tentando depurar é um acionador de função por um menu criado pelo próprio plug-in na área de administrador.
Drake

@ Drake - O que é um "gatilho de função?" Você pode postar seu código como uma atualização para sua pergunta?
21811 MikeSchinkel

0

não há como depurar os arquivos do plugin. A única maneira que encontrei para depurar o wordpress é usar o nusphere phped, que infelizmente não é freeware. Parece que o único pode fazer isso, não sei por que, mas passo muito tempo imaginando como depurar com netbeans e eclipse ... sem resultados!


-3

Bem, desde que o próprio WordPress fornece WP_DEBUG, e wp_die($msg)... por que você precisa depurar com o Xdebug? A menos que você esteja criando seu plugin usando uma estrutura?


ofertas XDebug muitas ferramentas que WP_DEBUG e de saída não - de perfil e percorrendo o código para um começo ...
Boisvert

Concordo, na época eu tinha muito pouco conhecimento sobre o Xdebug.
adrian7 22/02
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.