1
0
mirror of synced 2025-02-02 21:41:45 +03:00

Fix functional test query logger

DebugStack starts queries array from index 1 rather than 0 so the last query was never printed.
Also array params caused an 'Array to string conversion' error
This commit is contained in:
Carl Vuorinen 2016-09-03 23:52:34 +03:00
parent 31a0c02b06
commit 0da6669fac

View File

@ -750,10 +750,10 @@ abstract class OrmFunctionalTestCase extends OrmTestCase
if(isset($this->_sqlLoggerStack->queries) && count($this->_sqlLoggerStack->queries)) {
$queries = "";
for($i = count($this->_sqlLoggerStack->queries)-1; $i > max(count($this->_sqlLoggerStack->queries)-25, 0) && isset($this->_sqlLoggerStack->queries[$i]); $i--) {
$query = $this->_sqlLoggerStack->queries[$i];
$params = array_map(function($p) { if (is_object($p)) return get_class($p); else return "'".$p."'"; }, $query['params'] ?: array());
$queries .= ($i+1).". SQL: '".$query['sql']."' Params: ".implode(", ", $params).PHP_EOL;
$last25queries = array_slice(array_reverse($this->_sqlLoggerStack->queries, true), 0, 25, true);
foreach ($last25queries as $i => $query) {
$params = array_map(function($p) { if (is_object($p)) return get_class($p); else return var_export($p, true); }, $query['params'] ?: array());
$queries .= $i.". SQL: '".$query['sql']."' Params: ".implode(", ", $params).PHP_EOL;
}
$trace = $e->getTrace();