Exakat\Reports\Devoops::Compilation PHP Метод

Compilation() защищенный Метод

protected Compilation ( )
    protected function Compilation()
    {
        $css = new \Stdclass();
        $css->displayTitles = true;
        $css->titles = array('Version', 'Count', 'Fraction', 'Files', 'Errors');
        $css->readOrder = $css->titles;
        $total = $this->datastore->querySingle('SELECT value FROM hash WHERE key = "files"');
        $info = array();
        foreach ($this->config->other_php_versions as $suffix) {
            $res = $this->datastore->querySingle('SELECT name FROM sqlite_master WHERE type="table" AND name="compilation' . $suffix . '"');
            if (!$res) {
                continue;
                // Table was not created
            }
            $res = $this->datastore->query('SELECT file FROM compilation' . $suffix);
            $files = array();
            while ($row = $res->fetchArray(\SQLITE3_ASSOC)) {
                $files[] = $row['file'];
            }
            $version = $suffix[0] . '.' . substr($suffix, 1);
            if (empty($files)) {
                $files = 'No compilation error found.';
                $errors = 'N/A';
                $total_error = 'None';
            } else {
                $res = $this->datastore->query('SELECT error FROM compilation' . $suffix);
                $readErrors = array();
                while ($row = $res->fetchArray(\SQLITE3_ASSOC)) {
                    $readErrors[] = $row['error'];
                }
                $errors = array_count_values($readErrors);
                $errors = array_keys($errors);
                $errors = array_keys(array_count_values($errors));
                $total_error = count($files) . ' (' . number_format(count($files) / $total * 100, 0) . '%)';
                $files = array_keys(array_count_values($files));
            }
            $array = array('version' => $version, 'total' => $total, 'total_error' => $total_error, 'files' => $files, 'errors' => $errors);
            $info[] = $array;
        }
        return $this->formatCompilationTable($info, $css);
    }