GrumPHP\Collection\TasksCollection::sortByPriority PHP Method

sortByPriority() public method

This method sorts the tasks by highest priority first.
public sortByPriority ( GrumPHP $grumPHP ) : TasksCollection
$grumPHP GrumPHP\Configuration\GrumPHP
return TasksCollection
    public function sortByPriority(GrumPHP $grumPHP)
    {
        $priorityQueue = new SplPriorityQueue();
        $stableSortIndex = PHP_INT_MAX;
        foreach ($this->getIterator() as $task) {
            $metadata = $grumPHP->getTaskMetadata($task->getName());
            $priorityQueue->insert($task, [$metadata['priority'], $stableSortIndex--]);
        }
        return new TasksCollection(array_values(iterator_to_array($priorityQueue)));
    }