/** ----------------------------------------------------------------------+ * @desc FIXME ----------------------------------------------------------------------+ */ protected function write($filename, $content) { if (!$this->dry_run) { if (!\phplinter\Path::write_file($filename, $content)) { die("Unable to create '{$filename}'..."); } } if ($this->config->check(OPT_VERBOSE)) { echo "Wrote to file `{$filename}`\n"; } }
/** ----------------------------------------------------------------------+ * @desc Create HTML report * @param Array Lint report * @param Array Lint scores * @param String Target ----------------------------------------------------------------------+ */ public function create($report, $penaltys = null, $root = null) { $this->root = realpath($root); $output_dir = realpath($this->html['out']); if (!$output_dir) { $output_dir = $this->html['out']; } if ($this->config->check(OPT_VERBOSE)) { echo "Generating HTML Report to '{$output_dir}'\n"; } if (file_exists($output_dir) && $this->html['overwrite']) { if ($this->config->check(OPT_VERBOSE)) { echo "Emptying `{$output_dir}`\n"; } if (!$this->dry_run) { \phplinter\Path::del_recursive($output_dir); } } if (!file_exists($output_dir)) { $this->mkdir($output_dir, 0775); } $this->write($output_dir . '/html_report.css', $this->css()); foreach ($report as $file => $rep) { $out = '<div class="wrapper"><table border="1" cellpadding="0" cellspacing="0">'; $content = ''; foreach ($rep as $_) { $content .= $this->_fmessage($_); } $out .= '<tr>'; $score = SCORE_FULL + $penaltys[$file]; $class = $this->get_score_class($score); $out .= '<td colspan="2" align="center" class="' . $class . '">'; $out .= sprintf('Score: %.2f', $score); $out .= '</td>'; $parts = explode('/', $file); $rfile = array_pop($parts); $depth = count($parts); $path = $depth > 1 ? implode('/', $parts) : ''; $path = substr(realpath($path), strlen($this->root)); $out .= '<td class="filename">'; $out .= "{$path}/{$rfile}"; $out .= '<td class="line">'; $out .= 'Line</td></tr>'; $out .= '</td></tr>'; $out .= $content; $out .= '</table></div>'; $dir = $output_dir . $path; if (!file_exists($dir)) { $this->mkdir($dir, 0775, true); } $pp = explode('/', substr(realpath(implode('/', $parts)), mb_strlen($this->root))); $ofile = $dir . '/' . strtr($rfile, './', '__') . '.html'; $this->write($ofile, $this->_html($out, count($pp))); $url['phplinter___file'] = $file; $url['phplinter___url'] = strtr($rfile, './', '__') . '.html'; $url['phplinter___sort'] = strtolower($url['phplinter___url']); $this->parts($pp, $url, $urls); } $urls = $this->sort($urls); $this->output_indexes($urls, $penaltys); }