public function collect()
{
$totalTime = 0;
$queries = $this->queries;
$statements = [];
foreach ($queries as $query) {
$totalTime += $query['time'];
$bindings = $query['bindings'];
if ($query['hints']) {
$bindings['hints'] = $query['hints'];
}
$statements[] = ['sql' => $this->formatSql($query['query']), 'params' => (object) $bindings, 'duration' => $query['time'], 'duration_str' => $this->formatDuration($query['time']), 'stmt_id' => $query['source'], 'connection' => $query['connection']];
//Add the results from the explain as new rows
foreach ($query['explain'] as $explain) {
$statements[] = ['sql' => ' - EXPLAIN #' . $explain->id . ': `' . $explain->table . '` (' . $explain->select_type . ')', 'params' => $explain, 'row_count' => $explain->rows, 'stmt_id' => $explain->id];
}
}
$data = ['nb_statements' => count($queries), 'nb_failed_statements' => 0, 'accumulated_duration' => $totalTime, 'accumulated_duration_str' => $this->formatDuration($totalTime), 'statements' => $statements];
return $data;
}