fn = $fn; $this->reference = $reference; } /** * @return \Robo\Result */ public function run() { $result = call_user_func($this->fn, $this->getState()); // If the function returns no result, then count it // as a success. if (!isset($result)) { $result = Result::success($this->reference); } // If the function returns a result, it must either return // a \Robo\Result or an exit code. In the later case, we // convert it to a \Robo\Result. if (!$result instanceof Result) { $result = new Result($this->reference, $result); } return $result; } public function getState() { if ($this->reference instanceof StateAwareInterface) { return $this->reference->getState(); } return new Data(); } }