Рецепты
Политика безопасности контента
Если на вашем сайте используется политика безопасности содержимого,
вам нужно добавить 'nonce-<value>'
и 'strict-dynamic'
к script-src
,
чтобы Tracy работал правильно. Некоторые третьи плагины могут
потребовать дополнительные директивы. Nonce не поддерживается в
директиве style-src
, если вы используете эту директиву, вам нужно
добавить 'unsafe-inline'
, но этого следует избегать в производственном
режиме.
Пример конфигурации для Nette Framework:
Пример на чистом PHP:
Ускоренная загрузка
Базовая интеграция проста, однако если на веб-странице есть
медленные блокирующие скрипты, они могут замедлить загрузку Tracy.
Решение заключается в том, чтобы поместить
<?php Tracy\Debugger::renderLoader() ?>
в ваш шаблон перед любыми скриптами:
Отладка AJAX-запросов
Tracy автоматически перехватывает AJAX-запросы, выполненные с помощью
jQuery или собственного API fetch
. Эти запросы отображаются в виде
дополнительных строк в панели Tracy, что позволяет легко и просто
отлаживать AJAX.
Если вы не хотите автоматически перехватывать AJAX-запросы, вы можете отключить эту функцию, установив переменную JavaScript:
Для ручного мониторинга определенных AJAX-запросов добавьте
HTTP-заголовок X-Tracy-Ajax
со значением, возвращаемым функцией
Tracy.getAjaxHeader()
. Вот пример его использования с функцией
fetch
:
Такой подход позволяет выборочно отлаживать AJAX-запросы.
Хранение данных
Tracy может отображать панели Tracy bar и Bluescreens для AJAX-запросов и
редиректов. Tracy создает собственные сессии, хранит данные в
собственных временных файлах и использует cookie tracy-session
.
Tracy также может быть настроен на использование собственной сессии PHP, которая запускается до включения Tracy:
В случае, если запуск сессии требует более сложной инициализации, вы
можете запустить Tracy сразу (чтобы он мог обработать любые возникающие
ошибки), затем инициализировать обработчик сессии и, наконец, сообщить
Tracy, что сессия готова к использованию, используя функцию
dispatch()
:
Функция setSessionStorage()
существует с версии 2.9, до этого Tracy всегда
использовал родную сессию PHP.
Пользовательский скраббер
Scrubber – это фильтр, который предотвращает утечку конфиденциальных
данных из дампов, таких как пароли или учетные данные. Фильтр
вызывается для каждого элемента массива или объекта дампа и
возвращает true
, если значение является чувствительным. В этом
случае вместо значения выводится *****
.
Пользовательский регистратор
Мы можем создать пользовательский логгер, который будет
регистрировать ошибки, невыявленные исключения, а также вызываться
Tracy\Debugger::log()
. Logger реализует интерфейс Tracy\ILogger.
Затем мы активируем его:
Если мы используем полный Nette Framework, мы можем установить его в конфигурационном файле NEON:
Monolog Integration
Пакет Tracy предоставляет адаптер PSR-3, позволяющий интегрировать monolog/monolog.
nginx
Если Tracy не работает на nginx, скорее всего, он неправильно настроен. Если есть что-то вроде
измените его на