Esempio n. 1
0
<?php

/**
 * lib/web-scripts/xref-ci.php
 *
 * This script compares 2 arbitrary git commits
 * and finds/reports new errors in changed files.
 *
 * @author Igor Gariev <*****@*****.**>
 * @copyright Copyright (c) 2013 Igor Gariev
 * @licence http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
 */
$includeDir = "@php_dir@" == "@" . "php_dir@" ? dirname(__FILE__) . "/.." : "@php_dir@/XRef";
require_once "{$includeDir}/XRef.class.php";
$xref = new XRef();
$xref->loadPluginGroup("lint");
$scm = $xref->getSourceCodeManager();
$rev1 = isset($_REQUEST["rev1"]) ? preg_replace('#[^\\w\\-/}{ @]#', '', $_REQUEST["rev1"]) : '';
$rev2 = isset($_REQUEST["rev2"]) ? preg_replace('#[^\\w\\-/}{ @]#', '', $_REQUEST["rev2"]) : '';
if ($rev1 && $rev2) {
    $fileErrors = array();
    $modified_files = $scm->getListOfModifiedFiles($rev1, $rev2);
    $file_provider1 = $scm->getFileProvider($rev1);
    $file_provider2 = $scm->getFileProvider($rev2);
    $lint_engine = XRef::getConfigValue("xref.project-check", true) ? new XRef_LintEngine_ProjectCheck($xref) : new XRef_LintEngine_Simple($xref);
    $errors = $lint_engine->getIncrementalReport($file_provider1, $file_provider2, $modified_files);
}
echo $xref->fillTemplate("ci-web.tmpl", array('rev1' => $rev1, 'rev2' => $rev2, 'fileErrors' => $errors));
Esempio n. 2
0
 */
$includeDir = "@php_dir@" == "@" . "php_dir@" ? dirname(__FILE__) . "/.." : "@php_dir@/XRef";
require_once "{$includeDir}/XRef.class.php";
// web-server lint script
$xref = new XRef();
$xref->loadPluginGroup("lint");
$sourcePlugin = $xref->getPluginById("files");
$css = $sourcePlugin->getDefaultCSS();
$textareaContent = '// put source code here';
$report = null;
$exceptionMessage = null;
$formattedText = null;
if (isset($_REQUEST["source"]) && $_REQUEST["source"]) {
    $source = get_magic_quotes_gpc() ? stripslashes($_REQUEST["source"]) : $_REQUEST["source"];
    try {
        $parsed_file = $xref->getParsedFile("unknown.php", $source);
        if (count($parsed_file->getTokens()) > 1) {
            $lint_engine = XRef::getConfigValue("xref.project-check", true) ? new XRef_LintEngine_ProjectCheck($xref) : new XRef_LintEngine_Simple($xref);
            $lint_engine->addParsedFile($parsed_file);
            $report = $lint_engine->collectReport();
            $formattedText = $sourcePlugin->getFormattedText($parsed_file, "");
        } else {
            $textareaContent = htmlspecialchars($source);
        }
    } catch (Exception $e) {
        $exceptionMessage = $e->getMessage();
        $textareaContent = htmlspecialchars($source);
    }
}
echo $xref->fillTemplate('lint-web.tmpl', array('textareaContent' => $textareaContent, 'hasSource' => isset($source), 'formattedText' => $formattedText, 'exceptionMessage' => $exceptionMessage, 'report' => $report, 'css' => $css));
// vim: tabstop=4 expandtab
Esempio n. 3
0
$files = $xref->filterFiles($file_provider->getFiles());
foreach ($files as $filename) {
    try {
        $file_content = $file_provider->getFileContent($filename);
        $pf = $xref->getParsedFile($filename, $file_content);
        foreach ($plugins as $pluginId => $plugin) {
            $plugin->generateFileReport($pf);
        }
        $numberOfFiles++;
        $numberOfCodeLines += $pf->getNumberOfLines();
        $pf->release();
        // help PHP garbage collector to free memory
    } catch (Exception $e) {
        error_log("Can't process file '{$filename}': " . $e->getMessage() . "\n");
    }
}
// 2. Notify each plugin that all files are done
foreach ($plugins as $pluginId => $plugin) {
    $plugin->generateTotalReport();
}
// 3. Create index page
$reports = array();
// report name --> report url
foreach ($plugins as $pluginId => $plugin) {
    $reports = array_merge($reports, $plugin->getReportLink());
}
ksort($reports);
list($fh) = $xref->getOutputFileHandle("index", null);
fwrite($fh, $xref->fillTemplate("doc-index.tmpl", array('reports' => $reports, 'date' => date(DATE_RFC850), 'numberOfFiles' => $numberOfFiles, 'numberOfCodeLines' => $numberOfCodeLines)));
fclose($fh);
// vim: tabstop=4 expandtab