Рецепти
Политика за сигурност на съдържанието
Ако сайтът ви използва политика за сигурност на съдържанието, ще
трябва да добавите '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 създава свои собствени сесии, съхранява данни в свои собствени
временни файлове и използва бисквитка 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, вероятно е неправилно конфигуриран. Ако има нещо като
да го промените на