Как отладить плагин с помощью Xdebug?

12

Мне удалось довольно легко установить и настроить NetBeans 6.9.1 и Xdebug в моей локальной среде на основе PHP 5.3.0 (XAMPP).

Теперь моя проблема заключается в следующем: если я поставлю точку останова на файл Wordpress index.php или другие основные файлы PHP Wordpress, NetBeans правильно остановится на желаемой позиции. Если вместо этого я ставлю точку останова на файл плагина, триггер выполнения кода NetBeans на этом не останавливается.

Вы знаете, как можно решить?

ОБНОВЛЕНИЕ: Больше информации о том, что я пытаюсь отладить

Плагин называется Vanilla Forums и имеет следующую файловую структуру:

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

Я установил точку останова внутри функции с именем, vf_validate_optionsопределенным в functions.php. Я уверен, что эта функция выполняется, но NetBeans там не ломается.

селезень
источник
Если вы ставите throw new Exception('die');оператор после строки точки останова, останавливается ли он (в том смысле, что это убивает / завершает ваш запрос)?
hakre
@hakre Да, он выдает исключение (я уверен, что код, в котором установлена ​​точка останова, выполняется)
Drake
1
@Drake: Этот код выполняется на главной странице или в Ajax-вызове? Я считаю, что отладчик Xdebug должен быть включен с некоторыми переменными GET или POST, а затем устанавливает cookie, может быть, он не включен для запроса Ajax?
Ян Фабри
1
У меня точно такая же проблема, и я до сих пор не могу найти решение! Я использую nusphere phped, но я тоже попробовал Eclipse безрезультатно! Единственный файл, который xdebug останавливает на точке останова, - это «основные» файлы wordpress. Ни один php-файл темы не является отладочным! Дайте мне знать, если вы найдете решение, я сделал сообщение на официальном форуме WordPress без ответов :(
Kreker
1
Я думаю, что Ян Фабри на решение. Я предпочитаю использовать плагин Firefox EasyXdebug , который добавит XDEBUG_SESSION_STARTпараметр запроса ко всем запросам.
Джефф Стилер

Ответы:

1

Существует простое решение с расширением Firebox Xdebug Helper от Брайана Гилберта . Это устанавливает куки для xdebugсеанса, что позволяет вам использовать их xdebugв своих плагинах WordPress.

Есть также расширения для Chrome, Safari и Opera. Ссылки можно найти на сайте xdebug

Габриэль Роуз
источник
0

Привет @Drake:

Глупый вопрос, я знаю, но вы "активировали" плагин? Вот где я отключаюсь, когда плагины не отлаживаются.

MikeSchinkel
источник
Да, плагин активирован. То, что я пытаюсь отладить, - это запуск функции меню, созданным плагином self в области администратора.
Дрейк
@Drake - Что такое «триггер функции»? Можете ли вы опубликовать свой код в качестве обновления вашего вопроса?
MikeSchinkel
0

нет способа отладить файлы плагина. Единственный способ, который я нашел для отладки WordPress, это использовать nusphere phped, который, к сожалению, не является бесплатным. Кажется, это может сделать только один, я не знаю почему, но я провожу очень много времени, пытаясь понять, как отлаживать с помощью netbeans и eclipse ... без результатов!

Крекер
источник
-3

Ну, так как сам WordPress предоставляет WP_DEBUG, и wp_die($msg)... зачем вам нужно отлаживать с Xdebug? Разве вы не строите свой плагин, используя фреймворк?

adrian7
источник
xdebug предлагает множество инструментов, которые WP_DEBUG и вывод не делают - для начала профилирование и
пошаговое выполнение
Согласен, в то время у меня было очень мало знаний о Xdebug.
adrian7