Рецепти
Політика безпеки контенту
Якщо ваш сайт використовує політику безпеки вмісту, вам потрібно
додати '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 і сині екрани для AJAX-запитів і
перенаправлень. Tracy створює власні сесії, зберігає дані у власних
тимчасових файлах і використовує файли cookie tracy-session
.
Tracy також можна налаштувати на використання власного сеансу PHP, який запускається перед ввімкненням Tracy:
Якщо запуск сеансу вимагає складнішої ініціалізації, ви можете
запустити Tracy негайно (щоб він міг обробити будь-які помилки, що
виникають), а потім ініціалізувати обробник сеансу і, нарешті,
повідомити Tracy, що сеанс готовий до використання, за допомогою функції
dispatch()
:
Функція setSessionStorage()
існує з версії 2.9, до цього Tracy завжди
використовував власний сеанс PHP.
Користувацький скрубер
Скрубер – це фільтр, який запобігає витоку конфіденційних даних з
дампа, таких як паролі або облікові дані. Фільтр викликається для
кожного елемента дампа масиву або об'єкта і повертає true
, якщо
значення є конфіденційним. У цьому випадку замість значення
виводиться *****
.
Користувацький логгер
Ми можемо створити власний логгер для реєстрації помилок,
неперехоплених виключень, а також для виклику за адресою
Tracy\Debugger::log()
. Логгер реалізує інтерфейс Tracy\ILogger.
А потім ми його активуємо:
Якщо ми використовуємо повний Nette Framework, ми можемо встановити його у файлі конфігурації NEON:
Інтеграція монологу
До складу пакета Tracy входить адаптер PSR-3, що дозволяє інтегрувати monolog/monolog.
nginx
Якщо Tracy не працює на nginx, ймовірно, він неправильно налаштований. Якщо є щось на кшталт
змініть його на