Exemple #1
0
 /**
  * Extracts afferent and efferent coupling
  *
  * @param ClassMap $result
  * @return array
  */
 private function extractCoupling(ClassMap $result)
 {
     $results = $result->all();
     $classes = array();
     foreach ($results as $result) {
         $classes = array_merge($classes, $result->getClasses());
     }
     $map = array();
     foreach ($classes as $class) {
         if (!isset($map[$class->getFullname()])) {
             $map[$class->getFullname()] = new Result($class->getFullname());
         }
         $dependencies = $class->getDependencies();
         $map[$class->getFullname()]->setEfferentCoupling(sizeof($dependencies, COUNT_NORMAL));
         foreach ($dependencies as $dependency) {
             if (!isset($map[$dependency])) {
                 $map[$dependency] = new Result($dependency);
             }
             $map[$dependency]->setAfferentCoupling($map[$dependency]->getAfferentCoupling() + 1);
         }
     }
     return $map;
 }