protected function composeTask($task)
{
// If already built, return it
if ($task instanceof AbstractTask) {
return $task;
}
// If we provided a Closure, build a ClosureTask
if ($task instanceof Closure) {
return $this->buildTaskFromClosure($task);
}
// If we passed a task handle, return it
if ($handle = $this->getTaskHandle($task)) {
return $this->app[$handle];
}
// If we passed a command, build a ClosureTask
if (is_array($task) || $this->isStringCommand($task) || is_null($task)) {
return $this->buildTaskFromString($task);
}
// Else it's a class name, get the appropriated task
if (!$task instanceof AbstractTask) {
return $this->buildTaskFromClass($task);
}
}