Русские документы
Ежедневные компьютерные новости RSS rusdoc.ru  Найти :
http://www.rusdoc.ru. Версия для печати.

Отладка PHP средствами Firebug

Раздел: Programming / PHP @ 05.07.2008 | Ключевые слова: php firebug отладка firephp

Автор: Леонид Шевцов
Источник: habrahabr

FirePHP


Отладка PHP-скриптов определенно недостаточно освещена в интернете. Потому многие, очень многие довольствуются print_r-ками. Очевидный недостаток такого способа - нельзя отладить AJAX, SOAP-сервисы, генераторы картинок и вообще скрипты, не отдающие непосредственно HTML-документов.

Javascript-разработчики используют для отладки Firebug. Как я им всегда завидовал. Лепота - выделенная консоль, net-монитор, отладчик, и все это в любимом браузере.

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

require(`FirePHP.class.php`);
$firephp = FirePHP::getInstance(true);
$firephp -> fb("hello world! i`m warning you!",FirePHP::WARN);

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

Преимущество такой отладки в том, что данные передаются не в теле страницы, а в заголовках. Это значит, что во-первых, страница не засирается всяческими var_dump-ами, а во вторых, можно без проблем отлаживать AJAX-вызовы.

Для использования FirePHP нужно: подключить к проекту один файл и включить буферизацию вывода. Всего-то.

Насчет буферизации: на самом деле FirePHP хочет, чтобы до него никто ничего не писал в поток вывода. Логично, ведь он отправляет заголовки. Поскольку, вероятно, вы и так используете буферизацию, чтобы отправлять свои собственные заголовки, то это не проблема. Я имею ввиду, не обязательно использовать именно ob_start(), как в руководстве.

Не советую рассовывать вызовы fb() прямо в код. Подумайте, что будет с ними на продакшн-сервере. Правильнее внедрить FirePHP в систему отладки - например, уже есть расширения для Zend Framework и Symfony.

И я в свой отладчик интегрировал. Улет.

crossposted


Вернуться в раздел: Programming / PHP
© Copyright 1998-2012 Александр Томов. All rights reserved.