Exakat\Reports\RadwellCode::generate PHP Method

generate() public method

public generate ( $folder, $name = null )
    public function generate($folder, $name = null)
    {
        $list = Analyzer::getThemeAnalyzers($this->themesToShow);
        $list = '"' . join('", "', $list) . '"';
        $sqlite = new \Sqlite3($folder . '/dump.sqlite');
        $sqlQuery = 'SELECT * FROM results WHERE analyzer in (' . $list . ')';
        $res = $sqlite->query($sqlQuery);
        $results = array();
        $titleCache = array();
        $severityCache = array();
        while ($row = $res->fetchArray(SQLITE3_ASSOC)) {
            if (!isset($results[$row['file']])) {
                $file = array('errors' => 0, 'warnings' => 0, 'fixable' => 0, 'filename' => $row['file'], 'messages' => array());
                $results[$row['file']] = $file;
            }
            if (!isset($titleCache[$row['analyzer']])) {
                $analyzer = Analyzer::getInstance($row['analyzer']);
                $titleCache[$row['analyzer']] = $analyzer->getDescription()->getName();
                $severityCache[$row['analyzer']] = $analyzer->getSeverity();
            }
            $message = array('type' => 'warning', 'source' => $row['analyzer'], 'severity' => $severityCache[$row['analyzer']], 'fixable' => 'fixable', 'message' => $this->descriptions[$row['analyzer']]);
            if (!isset($results[$row['file']]['messages'][$row['line']])) {
                $results[$row['file']]['messages'][$row['line']] = array(0 => array());
            }
            $results[$row['file']]['messages'][$row['line']][0][] = $message;
            ++$results[$row['file']]['warnings'];
        }
        $text = '';
        foreach ($results as $file) {
            foreach ($file['messages'] as $line => $column) {
                $messages = $column[0];
                foreach ($messages as $message) {
                    $text .= $file['filename'] . ':' . $line . ' ' . $message['message'] . "\n";
                    $this->count();
                }
            }
        }
        if ($name === null) {
            return $text;
        } else {
            file_put_contents($folder . '/' . $name . '.' . self::FILE_EXTENSION, $text);
            return true;
        }
    }