Отладка PHP с помощью Eclipse?

Каков наилучший способ отладки PHP с Eclipse? В частности, я пытаюсь решить некоторые проблемы на установке Drupal 6.

Мне нравится отладка Eclipse для Java. Есть ли способ сделать то же самое для PHP?

Ответ 1

Я никогда не использовал Eclipse для разработки в JAVA, но если вы спрашиваете о графическом отладчике, который позволяет устанавливать точки останова, проходить текущую трассировку стека, просматривать содержимое переменных и все, что есть (по крайней мере, одна) решение:

Вы можете использовать расширение Xdebug и Eclipse PDT в качестве IDE: второе может использовать первое в качестве отладчика и предоставляет для него интерфейс - то, что вы могли бы ожидать, если бы использовали визуальный отладчик на других языках. /IDE.

Я использовал эту комбинацию пару раз с Drupal, чтобы увидеть, что было выполнено, в каком порядке, как и все это (не легко получить "вручную", с механизмом хуков), и оно определенно работает довольно хорошо,

В сети есть учебники, которые объясняют, как настроить оба из них, чтобы заставить работать отладчик. Например:


И вот скриншот того, как это может выглядеть (здесь я установил точку останова где-то в офисе Dotclear):

Nvfrj.png
(источник: pascal-martin.fr)

(Теоретически, нажав на изображение, вы получите увеличенную версию)


Значки в верхней части окна позволят вам сделать что-то вроде:

  • шаг за шагом
  • вход/выход из функций/методов

И вы также можете

  • посмотреть содержимое переменных (вверху справа на скриншоте)
  • иметь трассировку стека, показывающую, где вы находитесь (вверху слева на снимке экрана)
  • конечно, посмотрите, где вы находитесь в коде (внизу)


Я также слышал, что Eclipse PDT может использовать расширение Zend Debugger вместо Xdebug; но я никогда не пробовал это.

Ответ 2

Если вы по какой-либо причине не используете PDT, вы можете использовать CodeMix в качестве упрощенной альтернативы для отладки PHP в Eclipse. Конечно, вам все еще нужно установить XDebug - смотрите этот документ для более подробной информации.

Ответ 3

Вы можете добавить этот код в файл php.in для включения отладчика.

[XDebug]
zend_extension = "D:\opt\lampp\php\ext\php_xdebug.dll"
xdebug.remote_enable=On
xdebug.remote_autostart=On
xdebug.remote_handler=dbgp
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_mode=req