src/Rocketeer/Services/Builders/Modules/TasksBuilder.php
protected function composeTask($task)
    {
        // If already built, return it
        if ($task instanceof AbstractTask) {
            return $task;
        }

        // If we passed a callable, build a Closure Task
        if ($this->isCallable($task)) {
            return $this->buildTaskFromCallable($task);
        }

        // If we provided a Closure, build a Closure Task
        if ($task instanceof Closure || $task instanceof SerializableClosure) {
            return $this->buildTaskFromClosure($task);
        }

        // If we passed a task handle, return it
        if ($handle = $this->getTaskHandle($task)) {
            return $this->container->get($handle);
        }

        // If we passed a command, build a Closure Task
        if (is_array($task) || $this->isStringCommand($task) || $task === null) {
            return $this->buildTaskFromString($task);
        }

        // Else it's a class name, get the appropriated task
        if (!$task instanceof AbstractTask) {
            return $this->buildTaskFromClass($task);
        }
    }
protected function composeTask($task)
    {
        // If already built, return it
        if ($task instanceof AbstractTask) {
            return $task;
        }

        // If we passed a callable, build a Closure Task
        if ($this->isCallable($task)) {
            return $this->buildTaskFromCallable($task);
        }

        // If we provided a Closure, build a Closure Task
        if ($task instanceof Closure || $task instanceof SerializableClosure) {
            return $this->buildTaskFromClosure($task);
        }

        // If we passed a task handle, return it
        if ($handle = $this->getTaskHandle($task)) {
            return $this->container->get($handle);
        }

        // If we passed a command, build a Closure Task
        if (is_array($task) || $this->isStringCommand($task) || $task === null) {
            return $this->buildTaskFromString($task);
        }

        // Else it's a class name, get the appropriated task
        if (!$task instanceof AbstractTask) {
            return $this->buildTaskFromClass($task);
        }
    }
protected function composeTask ( $ task ) { // If already built, return it if ( $ task instanceof AbstractTask ) { return $ task ; } // If we passed a callable, build a Closure Task if ( $ this -> isCallable ( $ task ) ) { return $ this -> buildTaskFromCallable ( $ task ) ; } // If we provided a Closure, build a Closure Task if ( $ task instanceof Closure || $ task instanceof SerializableClosure ) { return $ this -> buildTaskFromClosure ( $ task ) ; } // If we passed a task handle, return it if ( $ handle = $ this -> getTaskHandle ( $ task ) ) { return $ this -> container -> get ( $ handle ) ; } // If we passed a command, build a Closure Task if ( is_array ( $ task ) || $ this -> isStringCommand ( $ task ) || $ task === null ) { return $ this -> buildTaskFromString ( $ task ) ; } // Else it's a class name, get the appropriated task if ( ! $ task instanceof AbstractTask ) { return $ this -> buildTaskFromClass ( $ task ) ; } }
Compose a Task from its various types.

@param string|Closure|AbstractTask $task

@throws \Rocketeer\Services\Builders\TaskCompositionException

@return mixed|\Rocketeer\Tasks\AbstractTask
Compose a Task from its various types .