Статьи

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

Если вы похожи на меня, вы скорее воздержитесь от воды, чем Firebug, работая над веб-проектом. Маленькая ошибка — фантастически полезный отладчик HTML / CSS / JavaScript / Ajax. Но знаете ли вы, что он также может быть использован для отладки PHP? Да, благодаря дополнительному расширению Firefox под названием FirePHP.

Комбинируя это расширение, которое находится поверх Firebug, с библиотекой на стороне сервера, ваши PHP-скрипты смогут отправлять отладочную информацию в браузер, легко кодируемый в заголовках HTTP-ответа. После настройки вы можете записывать предупреждения и ошибки в ваших PHP-скриптах на консоль Firebug, как если бы вы разрабатывали JavaScript.

Для начала вам необходимо установить расширение FirePHP с сайта дополнений Mozilla Firefox . Это требует, чтобы у вас уже был установлен Firebug. После установки FirePHP, когда вы в следующий раз откроете панель Firebug, вы увидите дополнительную синюю ошибку. Нажмите на эту ошибку, и появится меню, позволяющее включить или отключить FirePHP:

FirePHP Menu

Это, конечно, еще ничего не сделает. Вам также необходимо установить серверную библиотеку FirePHP, которая доступна здесь . Это автономная версия библиотеки, которую можно загрузить вручную или установить с помощью PEAR. После этого вам просто нужно включить библиотеку в ваш код. Существуют также версии, предназначенные для интеграции с различными платформами или системами управления контентом, такими как плагин WP-FirePHP для WordPress или плагин JFirePHP для Joomla . Ради этого пошагового руководства я сосредоточусь на автономной функциональности.

Когда у вас есть библиотека FirePHP на вашем сервере, вам нужно включить ее в ваш скрипт с помощью строки:

require_once('FirePHPCore/fb.php');

Поскольку FirePHP отправляет свои данные регистрации через заголовки HTTP, вам нужно будет буферизовать выходные данные вашего сценария, чтобы заголовки ответа могли включать в себя содержимое, сгенерированное далее в сценарии. В PHP это достигается путем вызова ob_start

ob_start();

Выполнив эти шаги, вы можете начать использовать FirePHP. Все, что вам нужно сделать, это вызвать функцию fb Например:

 $var = array('a'=>'pizza', 'b'=>'cookies', 'c'=>'celery');
fb($var);
fb($var, "An array");
fb($var, FirePHP::WARN);
fb($var, FirePHP::INFO);
fb($var, 'An array with an Error type', FirePHP::ERROR);

Этот код выдаст следующий вывод в консоль Firebug:

FirePHP Console Output

Вы также можете использовать FirePHP для отслеживания выполнения вашего приложения: передав константу FirePHP::TRACEfb Итак, этот код:

 
function hello() {
  fb('Hello World!', FirePHP::TRACE);
}
function greet() {
  hello();
}
greet();

Будет производить вывод следующим образом:

FirePHP Trace Output

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

Конечно, вы должны помнить, чтобы удалить ваши отладочные операторы, прежде чем ваш код заработает!

В FirePHP есть гораздо больше, чем я описал здесь. Я показывал вам упрощенный процедурный API для FirePHP, но есть более продвинутый объектно-ориентированный API с рядом дополнительных функций. Вы можете узнать все об этом на сайте FirePHP , поэтому обязательно ознакомьтесь с ним.