phake\CycleDetector::get_cycles PHP Method

get_cycles() public method

public get_cycles ( )
    public function get_cycles()
    {
        $this->initialize();
        foreach ($this->root_node->get_tasks() as $name => $task) {
            if (!$this->has_marked_node($task)) {
                $this->find_strongly_connected_components($task);
            }
        }
        return array_filter($this->connected_components, function ($component) {
            return count($component) > 1;
        });
    }

Usage Example

Beispiel #1
0
 private function detect_and_display_cycles($application)
 {
     $cycleDetector = new CycleDetector($application->root());
     $cycles = $cycleDetector->get_cycles();
     if (empty($cycles)) {
         return false;
     }
     $num_cycles = count($cycles);
     $pluralized_cycle_label = $num_cycles > 1 ? 'cycles' : 'cycle';
     echo "{$num_cycles} {$pluralized_cycle_label} found:\n";
     foreach ($cycles as $cycle) {
         $task_names = array_map(function ($task) {
             return $task->get_name();
         }, $cycle);
         echo '>> ' . implode(', ', $task_names) . "\n";
     }
     echo "\nTo ensure proper execution of tasks, please untangle these cyclic dependencies\n";
     return true;
 }