示例#1
0
 /**
  * Run PHP Code Sniffer over the given module.
  *
  * @param Module $module
  *
  * @return $this
  */
 public function runSniffScan(Module $module)
 {
     // Look for an existing one before adding or updating.
     $conditions = array('name' => $module->getName(), 'version' => $module->getVersion());
     $identifier = implode('-', $conditions);
     $found = $this->entityManager->getRepository('DrupalCodeMetrics\\SniffReport')->findOneBy($conditions);
     if ($found) {
         $report = $found;
         $this->log("Updating existing Sniff report for {$identifier}");
     } else {
         $report = new SniffReport();
         $this->log("Creating new Sniff report for {$identifier}");
     }
     $report->setName($module->getName());
     $report->setVersion($module->getVersion());
     $now = new \DateTime();
     $report->setUpdated($now);
     $analysis = $report->getSniffAnalysis($module, $this->options['extensions']);
     $report->setAnalysis($analysis);
     $this->entityManager->persist($report);
     $this->entityManager->flush();
     if (!$analysis) {
         $this->log("SniffReport on " . $module->getName() . " failed. Not updating it.");
         $module->addStatus('sniff:failed');
     } else {
         $module->addStatus('sniff:processed');
     }
     return $this;
 }