public function generate($folder, $name = null)
{
$sqlite = new \Sqlite3($folder . '/dump.sqlite');
$sqlQuery = 'SELECT * FROM results WHERE analyzer in ' . $this->themesList;
$res = $sqlite->query($sqlQuery);
$results = array();
$titleCache = array();
$severityCache = array();
$results = array();
while ($row = $res->fetchArray(SQLITE3_ASSOC)) {
if (!isset($titleCache[$row['analyzer']])) {
$analyzer = Analyzer::getInstance($row['analyzer']);
$titleCache[$row['analyzer']] = $analyzer->getDescription()->getName();
$severityCache[$row['analyzer']] = $analyzer->getSeverity();
$clearphp = $analyzer->getDescription()->getClearPHP();
} else {
$clearphp = '';
}
$message = array('code' => $row['fullcode'], 'line' => $row['line'], 'clearphp' => $clearphp);
if (!isset($results[$titleCache[$row['analyzer']]])) {
$results[$titleCache[$row['analyzer']]] = array();
}
$results[$titleCache[$row['analyzer']]][] = $message;
$this->count();
}
if ($name === null) {
return json_encode($results);
} else {
file_put_contents($folder . '/' . $name . '.' . self::FILE_EXTENSION, json_encode($results));
return true;
}
}