Exemple #1
0
 /**
  * Run the task.
  *
  * @param array &$options Additional options.
  *
  * @return integer Number of errors.
  */
 public function run(&$options)
 {
     $lib = realpath($this->_config->getPath() . '/lib');
     $renderer = new PHP_PMD_Renderer_TextRenderer();
     $renderer->setWriter(new PHP_PMD_Writer_Stream(STDOUT));
     $ruleSetFactory = new PHP_PMD_RuleSetFactory();
     $ruleSetFactory->setMinimumPriority(PHP_PMD_AbstractRule::LOWEST_PRIORITY);
     $phpmd = new PHP_PMD();
     $phpmd->processFiles($lib, Components_Constants::getDataDirectory() . '/qc_standards/phpmd.xml', array($renderer), $ruleSetFactory);
     return $phpmd->hasViolations();
 }
Exemple #2
0
 /**
  * testHasViolationsReturnsTrueForSourceWithViolation
  *
  * @return void
  * @covers PHP_PMD
  * @group phpmd
  * @group unittest
  */
 public function testHasViolationsReturnsTrueForSourceWithViolation()
 {
     self::changeWorkingDirectory();
     $renderer = new PHP_PMD_Renderer_XMLRenderer();
     $renderer->setWriter(new PHP_PMD_Stubs_WriterStub());
     $phpmd = new PHP_PMD();
     $phpmd->processFiles(self::createFileUri('source/source_with_npath_violation.php'), 'pmd-refset1', array($renderer), new PHP_PMD_RuleSetFactory());
     $this->assertTrue($phpmd->hasViolations());
 }
Exemple #3
0
 /**
  * This method creates a PHP_PMD instance and configures this object based
  * on the user's input, then it starts the source analysis.
  *
  * The return value of this method can be used as an exit code. A value
  * equal to <b>EXIT_SUCCESS</b> means that no violations or errors were
  * found in the analyzed code. Otherwise this method will return a value
  * equal to <b>EXIT_VIOLATION</b>.
  *
  * @param PHP_PMD_TextUI_CommandLineOptions $opts The prepared command line
  *                                                arguments.
  *
  * @return integer
  */
 public function run(PHP_PMD_TextUI_CommandLineOptions $opts)
 {
     if ($opts->hasVersion()) {
         fwrite(STDOUT, 'PHPMD @package_version@ by Manuel Pichler' . PHP_EOL);
         return self::EXIT_SUCCESS;
     }
     // Create a report stream
     if ($opts->getReportFile() === null) {
         $stream = STDOUT;
     } else {
         $stream = fopen($opts->getReportFile(), 'wb');
     }
     // Create renderer and configure output
     $renderer = $opts->createRenderer();
     $renderer->setWriter(new PHP_PMD_Writer_Stream($stream));
     // Create a rule set factory
     $ruleSetFactory = new PHP_PMD_RuleSetFactory();
     $ruleSetFactory->setMinimumPriority($opts->getMinimumPriority());
     if ($opts->hasStrict()) {
         $ruleSetFactory->setStrict();
     }
     $phpmd = new PHP_PMD();
     $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(), array($renderer), $ruleSetFactory);
     if ($phpmd->hasViolations()) {
         return self::EXIT_VIOLATION;
     }
     return self::EXIT_SUCCESS;
 }