<?xml version="1.0" encoding="UTF-8" ?><oembed><version>1.0</version><provider_name>Чудо{вищные} заметки</provider_name><provider_url>https://miracle.rpz.name</provider_url><author_name>MiRacLe</author_name><author_url>https://miracle.rpz.name/author/miracle/</author_url><title>firebug для отладки серверного кода</title><html>&lt;a rel=&quot;tn&quot; href=&quot;http://miracle.rpz.name/shared/fb/firebug.png&quot;&gt;&lt;img class=&quot;tn&quot; src=&quot;http://miracle.rpz.name/shared/fb/tn_firebug.png&quot; alt=&quot;&quot; align=&quot;right&quot; /&gt;&lt;/a&gt;
За последние пару лет &lt;a href=&quot;http://getfirebug.com&quot;&gt;firebug&lt;/a&gt; стал стандартным инструментом для отладки клиентской части веб-приложений у большинства разработчиков.
Тем, у кого это не так - от души сочувствую ;o)
Но многие не догадываются, что с помощью firebug можно отлаживать и серверный код. Не breakpoint-ами конечно. Но как замена унылым print-ам и var_dump-ам очень даже!

Собственно делается всё очень просто. Для того чтобы в консоли firebug-а появилось сообщение, необходимо написать js-код:
&lt;pre class=&quot;js:nocontrols&quot;&gt;
console.log(&#039;сообщение&#039;);
console.group(&#039;разные типы сообщений&#039;);
console.info(&#039;к вашему сведению, мы тут логи пишем...&#039;);
console.warn(&#039;предупреждаем о разном&#039;);
console.error(&#039;и информируем об ошибках!!!&#039;);
console.groupEnd();
console.dir({сложная: {структура: [1,2,3]}});&lt;/pre&gt;
Подробнее о возможностях консоли firebug-а можно узнать в &lt;a href=&quot;http://getfirebug.com/console.html&quot;&gt;документации&lt;/a&gt;.

Дело за малым - сформировать эти строки на вашей серверной платформе.
Сложность представляет лишь последнее - &lt;a href=&quot;http://json.org/&quot;&gt;json&lt;/a&gt;-упаковка сложных структур, но и она уже во многих платформах решена. Сам я пользуюсь функцией, описанной в коментариях к &lt;a href=&quot;http://php.net/json_encode&quot;&gt;json_encode&lt;/a&gt;, т.к. родная слишком консервативна в вопросах кодировок(&lt;a title=&quot;JSON text SHALL be encoded in Unicode.  The default encoding is UTF-8.&quot; href=&quot;http://www.ietf.org/rfc/rfc4627.txt?number=4627&quot;&gt;по стандарту в json можно упаковать только уникод&lt;/a&gt;, но браузеры более лояльны нежели писатели стандартов).

Собственно теперь чем это лучше всяких принтов и вар_дампов?
Тем, что не меняют визуально документ, что существенно в современных сложных веб-приложениях.
К тому же это в разы удобнее - все сообщения в одном месте, красиво представлены...

В заключение скажу о якобы готовых решениях для PHP:
&lt;a href=&quot;http://www.indelible.org/php/Log/guide.html#the-firebug-handler&quot;&gt;Log::Firebug&lt;/a&gt; из &lt;a href=&quot;http://pear.php.net&quot;&gt;PEAR&lt;/a&gt; - драйвер для довольно распространнённого pear::log
&lt;a href=&quot;http://firephp.org/&quot;&gt;FirePHP&lt;/a&gt; - более комплексное решение, плагин к firebug-у и обёртка к серверному коду.

Я ни тем, ни другим не пользуюсь, т.к. первое сделано левой ногой, а второе заворачивает оригинальный документ в страшную multipart-кашу...</html><type>rich</type></oembed>