Улучшенный дебаг с помощью Whoops

Whoops — это такая классная библиотека, которая в красивом виде показывает, когда возникла какая-нибудь ошибка.

Классная библиотека Whoops показывает, где ошибка

 

Плюсы много в чём, сразу в удобном и красивом виде видно контекст строки, где произошла ошибка, точно так же можно прогуляться по стеку (слева), и справа каждый раз будет показан верный контекст. Очень удобно!

Снизу всякие переменные текущие показаны, в общем классная штука. Кстати как плюс, я теперь смог отключить xdebug, что очень сильно ускорило мой локальный PHP. Не факт, что здесь я поступил правильно, но моё дело поделиться с вами идеей.

 

Установить whoops просто:
composer require filp/whoops

, или прочитайте альтернативные варианты на их сайте или их гитхабе.

 

Проблема в том, что если его установить и активировать

, то логи ошибок перестанут писаться в другие места, в стандартный лог пхп. А это недопустимо.

 

Давайте починим, чтобы логи не только красиво показывались, но и писались во все места.

Здесь у нас логи будут показываться красиво, писаться в пхп еррор лог, и даже выводиться в браузере в консоли.

Ура!

 

Альтернативы

На самом деле, есть такая альтернатива: https://github.com/Rarst/wps

Плагин не только сам включит поддержку whoops для фронтенда, но и для json и ajax. Я попробовал, но пришёл к выводу, что мне это не подходит. Например, ошибки в формате json мне мешают. Стандартный PrettyPageHandler делает красивый plain text комментарий в начале своей страницы, его удобно читать в аутпуте json:

whoops выводят текстовый стек ошибки в комментарии красивой страницы pretty page

 

Да и дорабатывать его нельзя, ошибки в лог точно так же не пишутся.

И отчёты об ajax ошибках в Query Monitor он точно так же ломает.

 

Минусы Whoops

Я пока знаю только один минус. По умолчанию, Query Monitor покажет ajax ошибку в своём интерфейсе, а с включенным whoops не покажет. Но ничего страшного, эта ошибка надёжно сохранена в еррор логе пхп.

Не минус но недочёт: я пока так и не смог принимать ссылки subl://, чтобы по ссылке в сообщении об ошибке я сразу мог открыть саблайм на нужном месте. Сейчас нужно выделить, Ctrl+C, Alt+Tab, Ctrl+P, Ctrl+V, :номер_строки, Enter. Тоже очень-очень быстро, но не быстрее, чем 1 клик.

 

Рекомендую Whoops! Ошибки в пхп для крутых пацанов ;)

Обсуждение

avatar

wpDiscuz