private function generateDocumentation()
{
$datas = array();
$baseHTML = $this->getBasedPage("analyzers_doc");
$analyzersDocHTML = "";
foreach (Analyzer::getThemeAnalyzers($this->themesToShow) as $analyzer) {
$analyzer = Analyzer::getInstance($analyzer);
$description = $analyzer->getDescription();
$analyzersDocHTML .= '<h2><a href="issues.html?analyzer=' . md5($description->getName()) . '">' . $description->getName() . '</a></h2>';
$badges = array();
$v = $description->getVersionAdded();
if (!empty($v)) {
$badges[] = '[Since ' . $v . ']';
}
$badges[] = '[ -P ' . $analyzer->getInBaseName() . ' ]';
$versionCompatibility = $analyzer->getPhpversion();
if ($versionCompatibility !== Analyzer::PHP_VERSION_ANY) {
if (strpos($versionCompatibility, '+') !== false) {
$versionCompatibility = substr($versionCompatibility, 0, -1) . ' and more recent ';
} elseif (strpos($versionCompatibility, '-') !== false) {
$versionCompatibility = ' older than ' . substr($versionCompatibility, 0, -1);
}
$badges[] = '[ PHP ' . $versionCompatibility . ']';
}
$analyzersDocHTML .= '<p>' . implode(' - ', $badges) . '</p>';
$analyzersDocHTML .= '<p>' . $this->setPHPBlocs($description->getDescription()) . '</p>';
$v = $description->getClearPHP();
if (!empty($v)) {
$analyzersDocHTML .= '<p>This rule is named <a target="_blank" href="https://github.com/dseguy/clearPHP/blob/master/rules/' . $description->getClearPHP() . '.md">' . $description->getClearPHP() . '</a>, in the clearPHP reference.</p>';
}
}
$finalHTML = $this->injectBloc($baseHTML, "BLOC-ANALYZERS", $analyzersDocHTML);
$finalHTML = $this->injectBloc($finalHTML, "BLOC-JS", '<script src="scripts/highlight.pack.js"></script>');
$this->putBasedPage('analyzers_doc', $finalHTML);
}