Comments 69
"Замечания" по юзабельности статьи. Для таких статей уже бы сразу вставляли кнопки популярных веб-закладок, чтобы прочитал и не отходя от статьи нажал добавить в закладки. :)
Кроссбраузерный аналог не подскажите?
вот такой вот неадекватный комментарий получился из-за переизбытка эмоций :(
Как это отладка недостаточно освещена?! Есть замечательные отладчики в PHPEd и Zend'е.
не совсем то ) есть масса людей, которые не используют эти среды. а вот подобные средства в самом браузере - класс
есть масса людей, которые пишут свой код, проекты разработаны с нуля и небольшой командой с ровными руками — у них дальше принтэр проблемы не доходят независомо от сложности проекта. А вот если в контору попадает допустим чужой комок индокода, где не знаешь откуда ноги растут, тогда и нужны отладчики, чтобы понять где какие переменные появляются/меняются.
Еше лучшие команды с более "ровными руками" используют var_dump, поскольку заботливо относятся к типизации.
Ну и еще полезно знать про $e->getTrace() если код написан в стиле try/catch.
Правильно, а если его перенаправить в syslog, например, на свой комп, будет тоже достаточно удобно.
Уверяю, в пятом есть. Во всяком случае конструкции такие имеются :)
UFO landed and left these words here
Спасибо за находку, не всегда есть возможность заюзать extension ну удаленном сервере для дебага.
Интересное решение, спасибо. А преимущество в том, что все это в браузере.
Главное, что данные передаются в хедерах, а код самой страницы не портится.
вот если опишите, как её к какой нибудь CMS`ке подключить - будет круто!
ОК, завтра опишу. Изначально хотел выложить код своего дебаггера, но решил, что много букв :)

А вообще, что в чужой CMSке отлаживать-то?
$array = array("key1"=>"madesst","key2"=>"какой-то русский контент","key3"=>array(1,2,3));
fb($array, "TestArray", FirePHP::LOG);
// с русским языком у меня это чудо не дружит чего-то =\
> Отладка PHP-скриптов определенно недостаточно освещена в интернете. Потому многие, очень многие довольствуются print_r-ками.
Меня лично вполне устраивает Xdebug в связке с Eclipse PDT. Хотя по сути это все таки немного другие задачи решает, так что FirePHP тоже может пригодиться.
Читал и даже на практике у нас на работе в цмску давно интегрирован (уж незнаю самописный или этот самый) вместе с XDebug, но на практике мне лично удобней сразу на экране видеть дебаг, чем открывать firebug-консоль. Если надо что-бы клиент не видел - так поставьте огрнаничение по IP или по лишнему GET параметру. Возможности Zend debugger'а увы не осилил.
Отличная штука!
Можно использовать хоть с фреймворками, хоть просто с голым пхп. Да еще хоть через классы, хоть через процедуры. Дампы - просто красота. Очень универсально.
Автору — спасибо! я даже не задумывался о возможности существования такого инструмента.
может быть я старомоден, но дальше try&catch и die(var_dump($var)); у меня не уходило =)
Эх! Отмечу 4 июля красным. Столько правильных и полезных постов на хабре.
А еще есть такая офигенная штука, как плагин к вижал студии, с отличным дебагером для пхп и джава скриптов, который зовется VS.Php. Все-таки на мой взгляд в студии несколько приятней работать чем в том же самом эклипсе.
Прелесть описанного в посте инструмента в том, что он позволяет вполне комфортно отлаживать скрипты не только на локальной машине, но и на реальном удаленном сервере!
ЗЫ: после прочтения данной заметки почти всю ночь прикручивал FirePHP куда в голову стукнет, потом сидел и радовался)))
а если это необходимо? например, чтобы использовать боевое окружение?
не буду настаивать, каждый сам делает так, как считает нужным, но дебажить крупный проект на боевом сервере я никогда не стану, а когда что-то идет не так, точку падения можно и через логи узнать и решать проблему на отдельной машине =)
Дело вкуса, но мое мнение — удобнее увидеть в обозревателе практически в реальном времени чем копать логи. И вовсе не обязательно из этого делать дыру.
Некоторые вещи от безысходности приходится делать вообще без средств отладки… но это уже к вебу не относится…
Когда что-то идет не так, то приходится и на боевом смотреть…
может, Ричард Столлмен? :)
на самом деле, не такие большие деньги, ибо VS сама по себе во многом удобнее эклипсы.
Клевая вещь, ме понравилось, что всякий мусор не вываливается непосредственно в тело сайта, а все, что нужно можно посмотреть в Firebug. Мы даже внедрили эту штуку в свой фрэймворк :-)
Этот FirePHP огромная дыра в безопасности веб приложения! Не понимаю чего его так нахваливают....

Удаленная отладка без авторизации значит, что каждый может дебажить вас, думаю врятли это хорошая идея. К тому-же код напичканный fb вызовами на продакшене это полохо.
В чистом виде я бы его не использовал уж очень сыроват.
FirePHP думаю отлично подойдет ленивым фрилансерам с кривыми проектами IMHO xD
По сути ты прав, только вот заглючил у меня зенд дебаг. Без локалки не хочет работать -хоть ты тресни. А бывает нужно просто строчку вывести чтоб не прерывать ничего.
это не дыра, а инструмент отладки.
никто не заставляет использовать его без авторизации. все на усмотрение разработчика.
про авторизацию, кстати, на официальном сайте сказано, типа, неплохо бы ее использовать.
если уж говорить про дыры, то дырами является все что используется без головы.
А не надо его использовать на продакшене. И не будет дыры в безопасности.
Вот блин, никаких хидеров нету, почему так - непонятно. Все вроде работает, все повключал, а хидеров нету.
Поставил, удобный вывод отлаживаемых данных. Вопрос насколько он сильно используемый в реальной работе...
По сути мы делаем те же принтр, только в более читабельной форме.
Спасибо автору за статью.
Надо будет затестить на досуге.
А ее самому уже не получится расширить?
я пользуюсь своим классом на подобии log4j в java, где в конфиги приложения выставляю LEVEL: ERROR,DEBUG,WARN,INFO и сотвественно в моем коде пишу logger->info("log string"),logger->error("my errror") и тд
Есть уже написанный log4php, как раз по мотивам )
http://incubator.apache.org/log4php/
Это замечательно! Именно то, чего давно хотелось. Долой отладочные принт_р! :)
Действительно, хорошее решение.
А касаемо ptint_r и var_dump - есть еще dBug.php (http://dbug.ospinto.com/).
Бесплатно, с открытым кодом, наглядно.
Для тех, кому FirePHP по каким-либо причинам не пришелся (может из-за огнеЛиса).
интересно.

забавно было увидеть последней строкой следующее:
Fatal error: Call to undefined function getAllHeaders() in /home/operata/kaloyan.info/krumo/demo/krumo/class.krumo.php on line 260
Only those users with full accounts are able to leave comments. Log in, please.