Пример #1
0
 /**
  * @param MarkdownBuilder $markdown
  * @param Metric $metric
  */
 protected function renderMetric(MarkdownBuilder $markdown, Metric $metric)
 {
     $markdown->h2($metric->getTitle());
     if ($metric->getDescription()) {
         $markdown->p($metric->getDescription());
     }
     $markdown->bulletedList(['code: ' . $metric->getCode(), 'value: ' . $metric->getValue()]);
 }
Пример #2
0
 /**
  * @param string $path
  * @param array $options
  * @param AbstractLogger $logger
  * @return Result
  */
 public function run($path, array $options, AbstractLogger $logger)
 {
     $file = tempnam('/tmp', 'pdepend_');
     $processBuilder = new ProcessBuilder([$this->bin]);
     $processBuilder->add('--summary-xml=' . $file);
     $processBuilder->add(implode(',', $options['files']));
     $processBuilder->setWorkingDirectory($path);
     $processBuilder->run($logger);
     $data = $this->convertFromXmlToArray(file_get_contents($file));
     (new Filesystem())->remove($file);
     $result = new Result();
     $add = function ($code, $title, $description = null) use($result, $data) {
         $metric = new Metric($title, strtolower('pdepend.' . $code), $data['@' . $code]);
         $metric->setDescription($description);
         $result->addMetric($metric);
     };
     $add('ahh', 'Average Hierarchy Height', 'The average of the maximum lenght from a root class to ist deepest subclass subclass');
     $add('andc', 'Average Number of Derived Classes', 'The average of direct subclasses of a class');
     $add('calls', 'Number of Method or Function Calls');
     $add('ccn', 'Cyclomatic Complexity Number');
     $add('ccn2', 'Extended Cyclomatic Complexity Number');
     $add('cloc', 'Comment Lines fo Code');
     $add('clsa', 'Number of Abstract Classes');
     $add('clsc', 'Number of Concrete Classes');
     $add('fanout', 'Number of Fanouts', 'Referenced Classes');
     $add('leafs', 'Number of Leaf Classes', '(final) classes');
     $add('lloc', 'Logical Lines Of Code');
     $add('loc', 'Lines Of Code');
     $add('maxDIT', 'Max Depth of Inheritance Tree', 'Maximum depth of inheritance');
     $add('ncloc', 'Non Comment Lines Of Code');
     $add('noc', 'Number Of Classes');
     $add('nof', 'Number Of Functions');
     $add('noi', 'Number Of Interfaces');
     $add('nom', 'Number Of Methods');
     $add('nop', 'Number of Packages');
     $add('roots', 'Number of Root Classes');
     return $result;
 }
Пример #3
0
 /**
  * @param Metric $metric
  * @return int
  */
 private static function codeDepth(Metric $metric)
 {
     return substr_count($metric->getCode(), '.');
 }