Трассировка стека запросов Symfony Profiler

У меня есть портал, созданный с помощью Symfony 3.4 и Sonata Admin.

В конкретной админке много сгенерированные запросы. Я использовал профилировщик, чтобы отследить их, но я не вижу где, которые они сгенерировали:

Трассировка стека запросов Symfony Profiler

Один и тот же запрос повторяется много раз с разными идентификаторами:

Трассировка стека запросов Symfony Profiler

Есть ли способ понять где они генерируются? Я видел этот пост, и сейчас это кажется невозможным:

https://github.com/doctrine/DoctrineBundle/issues/722

Разве я не могу просто перетащить dump/die где-нибудь в профилировщик, чтобы получить конкретную строку?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
0
0
1 423
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Это непростая задача, но я думаю, что вы можете получить некоторые подсказки с помощью информации журнала отладки, запросов доктрины и шкалы времени выполнения.

На временной шкале вы можете видеть, когда доктрина выполняет запрос, а с помощью информации из Doctrine и отладки вы можете объединить время выполнения и выполненный запрос.

Я надеюсь, что эта информация может вам помочь

Похоже, что нет простого способа отслеживать инициаторов запросов, но я нашел следующий пост, объясняющий, почему вы можете увидеть несколько похожих запросов: Doctrine2 в Symfony2: Как я могу увидеть, какой объектный вызов ведет к запросу?

Ответ принят как подходящий

Я только что нашел этот плагин, который делает именно то, что мне нужно:

https://github.com/VincentChalnot/DoctrineDebugBundle

Кажется, он работает нормально, и он показывает трассировку стека из запроса.

Начиная с v1.11.0, Комплект доктрины может отображать обратную трассировку запроса в Symfony Profiler. Это может быть полезно для определения того, какой код вызвал выполнение конкретного запроса.

Эта функция отключена по умолчанию, но вы можете включить ее, используя конфигурацию profiling_collect_backtrace в настройках подключения к доктрине.

См. https://symfony.com/blog/new-in-doctrinebundle-1-11-0#store-backtraces-when-profiling-queries для получения дополнительной информации.

Другие вопросы по теме