Example #1
0
 /**
  * Build modules dependencies
  *
  * @param array $dependencies Key is the vertex and the value are the adjacent vertices(dependencies) of this vertex
  * @return array
  */
 public function buildCircularDependencies($dependencies)
 {
     $this->init($dependencies);
     foreach (array_keys($this->dependencies) as $vertex) {
         $this->expandDependencies($vertex);
     }
     $circulars = $this->graph->findCycle(null, false);
     foreach ($circulars as $circular) {
         array_shift($circular);
         $this->buildCircular($circular);
     }
     return $this->divideByModules($this->circularDependencies);
 }