CakePHP : récupérer les requêtes SQL exécutées lors du traitement d’une action

24 Mai 2011 3 No tags

CakePHP stocke toutes les requêtes SQL exécutées lors de l’appel d’une action dans un tableau qui se nomme « _queriesLog ». Ce tableau est disponible sur n’importe quel modèle. Il est possible de renvoyer l’ensemble des requêtes SQL comme ceci :

Fichier app/app_model.php
[php] public function geQueries ()
{
$dbo = $this->getDatasource();
return $dbo -> _queriesLog;
}
[/php]

La fonction getQueries() peut alors être appelée sur un modèle.
[php] debug($this -> Model -> getQueries());
[/php]

Par extension, vous pouvez seulement renvoyer la dernière requête SQL exécutée :
[php] public function getQueries ()
{
$dbo = $this->getDatasource();
$logs = $dbo -> _queriesLog;

return end($logs);
}
[/php]