расставляй правильно приоритеты и не отвлекайся на мелочи

Оригинальный PHP Debugger или делаем отладку PHP скриптов прямо в FireBug

В начале своей PHP деятельности, да и сейчас, с завидной регулярностью, всегда пытался найти подходящий отладчик для своих PHP скриптов, но, к сожалению, у меня пока ничего не прижилось, кроме банальных: echo, var_dump с print_r и error_log. Оговорюсь сразу, продукция Zend мне пока не по карману и их волшебный Zend Studio я не щупал, а так-же я в курсе про существование debug_backtrace и debug_print_backtrace.

В общем-то, для 99% случаев, вышеназванных четырех php операторов мне вполне хватает, но всегда хочется чего-то более удобного, тем более, что для корректной работы скрипта не всегда возможен пользовательский вывод и в этом случае приходится обходиться простым маневром с выводом в лог ошибок: error_log(…, 0).

Оказывается в мире Firefox дополнений существует очень полезная штука: FirePHP, которая работая в тандеме с FireBug (только не говорите, что Вы не знаете, что это за зверь), позволяет на порядок более приятно работать с теми самыми, моими любимыми, четырьмя операторами.

FirePHP — это неполноценный отладчик, он позиционируется как довольно простое средство позволяющее осуществлять наглядный вывод в консоль FireBug прямо из Ваших php скриптов, такая возможность позволяет не пересекаться Вашим данным для отладки, с данными пользовательского вывода, особенно полезным это может оказаться при работе с XML и JSON результатами работы скриптов в Ajax приложениях. Все данные, пересылаемые между скриптом и консолью, передаются через HTTP заголовок.

Собственно, что такое наглядный вывод Вы можете сразу узреть на следующей картинке:

Для работы с FirePHP, Вам понадобится собственно Firefox, установленный и рабочий FireBug, PHP библиотека от FirePHP, через которую Вы будете отсылать дебаг-сообщения и естественно само дополнение FirePHP. Последние два компонента доступны на официальном сайте (настоятельно рекомендую брать Firefox Extension оттуда, т.к. на Mozilla Add-ons это дополнение все еще находится в состоянии experimental и лично я поимел достаточно проблем с его скачиванием, видимо reCaptcha используемая на сайте Mozilla Add-ons была скомпроментирована и я так и не сумел ее набрать даже после 4-ого десятка попыток).

О том, как запустить в работу сие чудо довольно хорошо и просто описано на самом сайте в «Быстром старте«, в трех фразах, для Вашего скрипта, это будет так: подключаем саму библиотеку (FirePHPCore/fb.php), включаем буферизацию вывода, если она уже не включена (данные то передаются через заголовок), в контрольных точках вызываем функцию fb() с нужными параметрами, которая отсылает сообщения в консоль (формирует HTTP заголовок).

Все довольно просто, единственное, чего не хватает для отладки, которую теперь можно делать даже на рабочем сервере, это контроля за клиентской частью, т.к. отладочная информация будет отсылаться на запрос любого клиента. Но, т.к. мы имеем одну единственную точку (процедуру) вызова fb(), никто не мешает нам контролировать в ней $_SERVER[«REMOTE_ADDR»] и поэтому, немного заточив ее напильником, Вы сможете отсылать отладочные сообщения только на свой отладочный PC, минуя штатные клиентские запросы. Думаю в следующих версиях FirePHP будет предоставляться возможность по ограничению разрешенных клиентских PC.

Сама идея FirePHP не содержит в себе ничего экстраординарного, но для моих нужд — это то, что надо, надеюсь Вам эта «примочка» то-же понравится.

3 комментария на статью:
  1. Never Lex:

    Давно примочка установлена, но пока не пользуюсь. Думаю, что вскоре буду начинать :)

  2. Владимир:

    Сделал себе дебаггер сам, который показывает работу программы в виде диаграммы, ибо простых мессаджей было недостаточно. Заценить можно здесь:
    http://arttechlab.net/index.php?m=cat&id=3570

  3. Stas:

    Мне больше нравится Codelobster: http://www.codelobster.com

Ответить
Обязательные поля помечены *