MacBook avec code sur un bureau

Symfony – Doctrine – Comment voir où est exécutée une requête SQL

Lorsque l’on utilise Doctrine, il est parfois important de trouver où est exécutée une requête SQL.

Il suffit d’activer profiling_collect_backtrace sur la connexion, dans la configuration de développement (config/packages/dev/doctrine.yaml) :

doctrine:
    dbal:
        connections:
            default:
                profiling_collect_backtrace: true

L’option est à réserver au développement : collecter la pile d’appels à chaque requête coûte cher. Elle dépend du profiling, actif par défaut quand %kernel.debug% vaut true. Le détail des options est dans la configuration de Doctrine.

La stack trace apparaît ensuite dans le profiler, onglet Doctrine, en dépliant la requête voulue.

Stack trace d'une requête SQL Doctrine dans le profiler Symfony

À lire aussi