Есть крайне удобная библиотека в Laravel, которую прям готов порекомендовать всем-всем-всем разработчикам на данном фреймворке. Я говорю о Laravel Debugbar. Лично я использую для отладки SQL запросов, но была, к примеру, необходимость отлавливать вызываемые ивенты в системе… в общем, плюшек там интересных хватает.


Некоторое время я ломал голову с отображением (и скрытием соответственно) на боевом сервере, в песочнице с этим, ясное дело, проблем не возникало. Странно, но то ли я плохо искал, то ли это не такая общая проблема у разработчиков, но тщательное гугление принесло мало полезных итогов. Так, прочитав один из советов, что управлять можно отключением в конфиге (???), я понял, что, кажется, ищу не там, где следует. А может даже и не стоит ничего искать, а нужно попробовать самостоятельно это сделать.

Итак, я решил взять на вооружение Middleware, с которыми знаком уже давно не шапочно. Логика была такая — если мы отлавливаем какой-нибудь параметр в запросе (или фильтруем по типу пользователя, например, для админов) в Middleware, то включаем debugbar. Необходимость пропала — отключаем.

Итак, что у меня получилось.

Я проверяю, если был передан параметр appmode со значением debug, то я включаю показ debugbar, причем я заношу этот параметр в сессию, чтобы можно было отлавливать также ajax запросы, например. Как только необходимость ушла, посылаю запрос appmode=live, и все, дебагбар закрыт и не показывается.

В конфиге debugbar.php я устанавливаю параметр enabled в true. Значение переменной APP_DEBUG в окружении не влияет на поведение дебагбара.