/** * @param Questioner $questioner * @param Runner $runner * @param array $cachedAnswers Cached answers (from a previous run) */ public function execute(Questioner $questioner, Runner $runner, array $cachedAnswers = []) { $answers = $questioner->interact($this->configurators, $runner->skipOptional(), $this->variables, [] !== $cachedAnswers ? $cachedAnswers : $this->defaults); $runner->run($this, $this->generators, $answers); }