PHPMD\TextUI\Command::run PHP Method

run() public method

The return value of this method can be used as an exit code. A value equal to EXIT_SUCCESS means that no violations or errors were found in the analyzed code. Otherwise this method will return a value equal to EXIT_VIOLATION. The use of flag --ignore-violations-on-exit will result to a EXIT_SUCCESS even if any violation is found.
public run ( CommandLineOptions $opts, RuleSetFactory $ruleSetFactory ) : integer
$opts CommandLineOptions
$ruleSetFactory PHPMD\RuleSetFactory
return integer
    public function run(CommandLineOptions $opts, RuleSetFactory $ruleSetFactory)
    {
        if ($opts->hasVersion()) {
            fwrite(STDOUT, sprintf('PHPMD %s', $this->getVersion()) . PHP_EOL);
            return self::EXIT_SUCCESS;
        }
        // Create a report stream
        $stream = $opts->getReportFile() ? fopen($opts->getReportFile(), 'wb') : STDOUT;
        // Create renderer and configure output
        $renderer = $opts->createRenderer();
        $renderer->setWriter(new StreamWriter($stream));
        $renderers = array($renderer);
        foreach ($opts->getReportFiles() as $reportFormat => $reportFile) {
            $reportRenderer = $opts->createRenderer($reportFormat);
            $reportRenderer->setWriter(new StreamWriter(fopen($reportFile, 'wb')));
            $renderers[] = $reportRenderer;
        }
        // Configure a rule set factory
        $ruleSetFactory->setMinimumPriority($opts->getMinimumPriority());
        if ($opts->hasStrict()) {
            $ruleSetFactory->setStrict();
        }
        $phpmd = new PHPMD();
        $phpmd->setOptions(array_filter(array('coverage' => $opts->getCoverageReport())));
        $extensions = $opts->getExtensions();
        if ($extensions !== null) {
            $phpmd->setFileExtensions(explode(',', $extensions));
        }
        $ignore = $opts->getIgnore();
        if ($ignore !== null) {
            $phpmd->setIgnorePattern(explode(',', $ignore));
        }
        $phpmd->processFiles($opts->getInputPath(), $opts->getRuleSets(), $renderers, $ruleSetFactory);
        if ($phpmd->hasViolations() && !$opts->ignoreViolationsOnExit()) {
            return self::EXIT_VIOLATION;
        }
        return self::EXIT_SUCCESS;
    }

Usage Example

 protected function runCommand(array $args)
 {
     $argv = $this->parseSugaredArgv($args);
     $config = $this->getConfig($argv['namespace']);
     $ruleSetFactory = new RuleSetFactory();
     $options = new CommandLineOptions($argv['args'], $ruleSetFactory->listAvailableRuleSets(), $config);
     $command = new Command();
     return $command->run($options, $ruleSetFactory);
 }
All Usage Examples Of PHPMD\TextUI\Command::run