Méthode recommandée
L'enregistreur standard symfony serait la méthode recommandée:
à l'intérieur d'une action:
$this->logMessage('executed SQL: '.$sql);
à l'intérieur du modèle (ou ailleurs):
sfContext::getInstance()->getLogger()->info('executed SQL: '.$sql);
T Ces méthodes insèrent vos requêtes SQL dans l'onglet 'logs & msgs' de la barre d'outils de débogage dans la bonne position dans la chaîne d'exécution.
Cependant, si vous voulez juste voir les requêtes au haut de l'onglet «journaux & msgs de et ne pas besoin qu'ils soient stockés dans le journal permanent, vous pouvez utiliser $this->debugMessage($sql);
à la place , ce qui signifie également que vous pouvez voir les requêtes ensemble et ne pas les rechercher dans la chaîne d'exécution du journal.
Une façon potentiellement préférable
Je soupçonne que vous voudrez peut-être ces requêtes SQL apparaissent sur l'onglet « DB » à la place. Ce ne sont pas directement pris en charge par symfony, mais vous pouvez 'hack' cette solution à la place:
à l'intérieur d'une action:
$this->logMessage(sprintf("{sfCreole} executeQuery(): [x.xx ms] %s", $sql));
à l'intérieur du modèle:
sfContext::getInstance()->getLogger()->info(sprintf("{sfCreole} executeQuery(): [x.xx ms] %s", $sql));
Cela imite la comportement de l'option de débogage dans symfony pour la consignation des requêtes SQL, et va donc pousser votre requête SQL personnalisée dans l'onglet 'DB' de la barre d'outils de débogage. Je laisse l'option de synchronisation [x.xx ms] à vous de mettre en œuvre si vous le souhaitez :)