Как стать автором
Обновить

Комментарии 42

а вот как бы развить данное расширение, чтоб его могли не только PHP-шники использовать? цены бы ему не было!
А тут в расширении даже ничего менять не надо, просто реализуйте этот класс на нужном языке, ну и конечно соответствующий обработчик ошибок тоже нужно будет реализовать.
а почему через куки вместо заголовков?
у браузеров насколько я помню их ограниченное количество на сайт
Если реализовывать через заголовки, то не будут отлавливаться сообщения от AJAX и IFrames запросов т.к. для Chrome-расширений пока ещё не реализован класс функций webRequest. Как webRequest реализуют — сразу перепишу, чтобы через кастомные заголовки работало. Обещали в 9-ой ветке добавить, ждёмс…

Насчёт того, что куки ограничены по размеру, я знаю, но расширение написано так, чтобы моментально чистить обработанные куки с сообщениями.
Выложил новую версию PHP Console и Lagger, теперь ограничение на кол-во отправляемых в 1 запросе сообщений увеличено с 70 до ~1000. Подробности тут.
Всё на куках, значит… А эти куки гарантированно удаляются? Т.е. не получится ли ситуации, когда этих кук в хроме будет храниться мильон?
См. ответ. И да, куки удаляются гарантировано. Они и выставляются только тогда, когда на клиентской стороне активировано PHP Console расширение.
Отлично!

Только вот всегда интересовало, а многие пользуются хромовским отладчиком?
Просто я сколько не пытался — не получается его использовать так же хорошо, как и FireBug
Поэтому приходится постоянно держать ФФ открытым для отладки.

Может тот, кто научился хорошо использовать отладчик хрома, напишет мини обзор, который позволит таким, как я перейти окончательно на хром. Спасибо!
Я пользуюсь вполне успешно, дело привычки — теперь мне файрбаг неудобным кажется
Я раньше тоже тормозился переходить с FF на Chrome из-за того, что под него нет FireBug, но в последних версиях Chrome родные Web Developer Tools стали вполне себе полноценным инструментом. Теперь только им и пользуюсь. Насчёт как там и что см. вот и <a href=«www.chromium.org/devtools/google-chrome-developer-tools-tutorial>вот.
Исключительно дело привычки. Сам юзал ФайрБаг. Но из-за тормознутого компа на работе (что-то с железом)
начинал по мелочам (поправить высоту блоку и подобной белиберде). Со временем начал забывать про лисичку, и открываю ее исключительно для отладки верстки и js.

В 6+ версии хромовский тулс стал лучше Бага.
Такое же под Firefox бы
FirePHP похоже — серверная часть возможно отличается (не успел посмотреть что за Lagger такой)
Серверная часть на самом деле очень сильно отличается. Кстати в Lagger есть плагин для работы с FirePHP.
Про FirePHP я знаю, это абсолютно другое
Спасибо вам за расширение, буду пользоваться
о, продолжаешь дело лаггера?)
А куда деваться :) Когда из существующих библиотек ничего не устраивает приходится писать своё.
Ну на вопрос «как подружить» вы ведь не ответили =)
См. в описании расширения простой пример есть:

<blockquote>// Autoload Lagger classes and initialize basics
define('LAGGER_BASE_DIR', '../library/');
function autoloadLaggerClasses($class) {
	if(strpos($class, 'Lagger_') === 0) {
		require_once (LAGGER_BASE_DIR . str_replace('_', '/', $class) . '.php');
	}
}
spl_autoload_register('autoloadLaggerClasses');

$laggerES = new Lagger_Eventspace();
$debug = new Lagger_Handler_Debug($laggerES);
$errors = new Lagger_Handler_Errors($laggerES);
$exceptions = new Lagger_Handler_Exceptions($laggerES);

// display all debug messages in console
$debug->addAction(new Lagger_Action_ChromeConsole('debug'), null);

//display all errors in console and as notifications with 1 lifetime
$errorsChromeConsole = new Lagger_Action_ChromeConsole('error', 1);
$errors->addAction($errorsChromeConsole, null);
$exceptions->addAction($errorsChromeConsole, null);

// test
$debug->handle('debug message', 'some,test,tags');
echo $unkownVar;
unkownFunction();</blockquote>
Благодарю ) Но, как по мне, такие моменты неплохо бы освещать в статье =)
Ох е… Чем же вас XDebug не «удовлетворяет»? В смысле какие проблемы, которые не решаются с помощью отладчика/профилировщика/трейсера XDebug, призвано решить данное приложение?
1. У XDebug есть плагины для логирования ошибок в различного рода IDE, но нормальных расширений для браузеров нет и быть не может в связи со сложностью его протокола, а т.к. насколько мне извество большинство веб-разработчиков не особо увлекаются использованием встроенных в IDE браузеров, то на практике использование XDebug для логирования ошибок становится не таким уж приятным занятием.

2. Т.к. в XDebug отсутствует различного рода логирование в файл или Email, то вам так или иначе придётся использовать некую дополнительную библиотеку, которая будет отвечать за своевременное уведомление вам о том, что на production-сервере что-то случилось.

3. XDebug это всё-таки стороннее расширение для PHP, которое не всегда есть возможность установить и тем более настроить.
1. У XDebug есть плагины для логирования ошибок в различного рода IDE, но нормальных расширений для браузеров нет и быть не может в связи со сложностью его протокола, а т.к. насколько мне извество большинство веб-разработчиков не особо увлекаются использованием встроенных в IDE браузеров, то на практике использование XDebug для логирования ошибок становится не таким уж приятным занятием.

2. Т.к. в XDebug отсутствует различного рода логирование в файл или Email, то вам так или иначе придётся использовать некую дополнительную библиотеку, которая будет отвечать за своевременное уведомление вам о том, что на production-сервере что-то случилось.

3. XDebug это всё-таки стороннее расширение для PHP, которое не всегда есть возможность установить и тем более настроить.
Bad Request

Your browser sent a request that this server could not understand.
Size of a request header field exceeds server limit.


пешально, я его поломал… слишком много E_NOTICE =)
Первое, что могу посоветова — используйте Lagger_Skipper для игнорирования обработаки повторяющихся ошибок.

Второй совет — ждите патча, в течении дня выложу.
Done :)
Как обещал — сделал патч. Нужно обновить Lagger и PHP Console.

Если прежде допустимым колличеством сообщений было порядка 70, то теперь около 900-1000, и в случае превышения лимита браузер не падает, а выдаёт попап-уведомление с соответствующим сообщением. Это реализовано таким образом, что сообщения группируются по кукам с ограничением 4к на каждую куку. Раньше под каждое сообщение отводилась отдельная кука.

Надеюсь вам хватит лимита в 1000 сообщений :)
Имеется ввиду лимит на то, что за один запрос скрипт может отправить на клиент до 1000 сообщений. Суммарное колличество сообщений обрабатываемых расширением ограничивается разве что размером оперативки.
У Котерова есть модуль, который отлавливает ошибки, включая фатальные, и тоже умеет отправлять на мыло: dklab.ru/lib/Debug_ErrorHook/
Не знаю, кто из вас сделал своё раньше, подумалось, что возможна была бы и кооперация.
Да не было никакой кооперации :)

Первая версия Lagger-а появилась в далёком 2005 году, тогда ещё была написана на PHP4 и представляла из себя один единственный класс для обработки ошибок и логирования в файл и отправки на Email, потом класс был переписан под PHP5, потом расширен на полноценную библиотеку, которая была представлена на конференции Highload++ в Москве, в 2008, после чего было ещё пару глобальных рефакторинга.

А про Debug_ErrorHook я даже не слышал ниразу. Сейчас посмотрел его исходники, так Lagger с ним как в функциональном так и в архитектурном плане даже близко ничего не имеет.
Не, я имел в виду, что кооперация была бы не плоха, ибо зачем делать два раза. Тем более если в одном из похожих проектов есть полезные фичи типа того же FirePHP/хромовой консоли.

Но если в 2005, но понятно, значит просто девелоперы слишком часто варятся в собственном соку :) Про «представлена на конференции» — я и не знал, что такое бывает с PHP-библиотеками.
Одни и те же библиотеки народ часто реализует и это хорошо на самом деле т.к. есть из чего выбирать. А насчёт конференции, так меня туда пригласили только потому что у знакомого докладчика тема сопутствующая была — Мониторинг и Логирование, в итоге я его как бы дополнял.

Думаю если разработчику Debug_ErrorHook захочется сделать вывод под PHP Console, то у него это очень просто получится т.к. там протокол взаимодействия элементарнейший. Я лично только рад буду, если мои разработки пригодятся кому-то.
Кстати, ещё у Котерова есть занятная библиотека PHP_Exceptionizer, которая любые ошибки, в т.ч. Notice (как настроено), преобразует в Exception'ы. dklab.ru/lib/PHP_Exceptionizer/ — может, пригодится. Я обычно использую её при разработке, а на почту получаю ошибки с рабочего сервера.
В Lagger-е для этой цели есть простенький класс Lagger_Action_Exception :)
Тот же Firebug.
Уже и в ёпере есть своя консоль.
Ждём такую же для ишака…
Чем оно лучше того же FirePHP:
Нормально обрабатывает фатальные ошибки
Отлавливает сообщения в AJAX-скриптах и IFrame-ах
Имеет очень удобную функцию отображения сообщений во всплывающих уведомлениях
Отображает backtrace вызова
Отлавливает JavaScript ошибки
Поддерживает более функциональную и гибко конфигурироуемую библиотеку Lagger

гы..)
Очень хочу попробовать это расширение. Дайте, пожалуйста, ссылку на инструкцию по установке. Как связать php console и lagger?
Я впервые узнал о lagger из этой статьи и с трудом представляю что это такое и нужно ли мне это. Насколько я понял, чтобы всё начало работать нужно сделать следующее:

1. Install new version of PHP Console Google Chrome extension (https://chrome.google.com/webstore/detail/php-console/nfhmhhlpfleoednkpnnnkolmclajemef)
2. Install new server library from github.com/barbushin/php-console. For example, using
git clone https://github.com/barbushin/php-console.git php-console
3. Add to project's code:
$connector = PhpConsole\Connector::getInstance();
$connector->setPassword('yohoho123', true);
//...
PhpConsole\Handler::getInstance()->debug($var, 'some.tags');


И это всё? Или я что-то упустил?
И это всё :) Но только Lagger уже не совместим с новой PHP Console. Можете просто использовать их параллельно, конфликтовать они не будут.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории