Инструменты для отладки PHP-кода

06 Дек 2008
Опубликовано VladSavitsky
Задача: 

Бесплатные инструменты для отладки PHP-кодаНужны инструменты для трассировки или отладки PHP-кода.

Решение

PHP-выражение echo и функции var_dump(), debug_zval_dump() и print_r() являются обычными и очень популярными средствами отладки, помогающими решить различные проблемы. Однако как средства расследования эти выражения (и даже более надежный инструментарий, например, пакет PEAR Log) предоставляют доказательства, которые вы должны анализировать априори и вне контекста.

Варианты решений

Xdebug

Отладчик XdebugСтраница проекта: http://www.xdebug.org/

Xdebug может показать трассировку стека, вывести дамп даже комплексных переменных, проследить использование памяти во времени и выполнить эффективное посмертное вскрытие при возникновении ошибки или аварии (не если, а когда).

Xdebug вмешивается в процесс для предотвращения бесконечных рекурсий, добавляет в сообщения об ошибках информацию о трассировке стека и функций, следит за распределением памяти, а также выполняет некоторые другие функции. Xdebug содержит также набор функций, которые вы можете добавить в свой код для получения диагностических данных времени выполнения.

Рецепт: Установка и настройка отладчика Xdebug.

Модули Drupal

Модуль Devel

Модуль DevelМодуль Devel использует Krumo:

  • traceback,
  • object inspection,
  • ajax overlay

Обзор модуля: Модуль Devel: отладка в Drupal.

Модуль Drupal For Firebug

Модуль Drupal For FirebugОбзор модуля: Drupal For Firebug: отладка сайта в FireFox.
Для работы нужен модуль Devel и Firebug в FireFox

Отладка с помощью FirePHP

Отладка с помощью FirebugFirePHP - это расширение Firebug, которое позволяет выводить информацию в консоль Firebug непосредственно из PHP.

Страница проекта: http://www.firephp.org/

Можно передавать произвольные структуры данных и исключения. В последнем случае получим не только сам объект исключения, но и содержимое стека.
Данные передаются не в теле страницы, а в заголовках.
Можно отлаживать AJAX-вызовы.

Рецепт "Установка и настройка FirePHP".

Отладчик PHPEd

Отладчик Zend

FF есть Zend Studio Toolbar
Zend_Log

log4php

http://incubator.apache.org/log4php/

Использовать error_log

Настроить Apache писать сообщения об ошибках в файл error_log

Также можно его перенаправить в syslog (даже не другой машине).

dBug.php

Страница проекта: http://dbug.ospinto.com

DBG

Страница проекта: http://dd.cron.ru/dbg/

Advanced PHP Debugger (APD)

Страница проекта: http://pecl.php.net/apd

Документация Advanced PHP debugger

Установка Advanced PHP Debugger (APD)

Для загрузки и установки последней версии:

pear install apd

Вывод

FirePHP

Можно отладить AJAX, SOAP-сервисы, генераторы картинок и вообще скрипты, не отдающие непосредственно HTML-документов.

Полезно знать про $e->getTrace(), если код написан в стиле try/catch, который поддерживается в PHP5.

Использованные материалы:

Полезные ссылки:

 
 
 

RSS-лента новостей

Dries Buytaert по-русски
]]>Русский поиск Drupal]]>

Перенос сайта из Joomla в Drupal
Перенос сайта из WordPress в Drupal

]]> Drupal - это бесплатная система управления контентом с открытым исходным кодом ]]>