questionHelper = $questionHelper; } /** * @param InputInterface $input * @param OutputInterface $output * @param string $text * @param string|null $default * @param bool $allowEmpty * @return string * @throws RuntimeException */ protected function ask(InputInterface $input, OutputInterface $output, $text, $default = null, $allowEmpty = false) { if ($default !== null) { $text .= ' (defaults to ' . $default . ')'; } do { $value = $this->questionHelper->ask($input, $output, new Question( '' . $text . ': ', $default )); if (empty($value) && ! $allowEmpty) { $output->writeln('Value can\'t be empty'); } } while (empty($value) && $default === null && ! $allowEmpty); return $value; } /** * @param OutputInterface $output * @param string $text */ protected function printTitle(OutputInterface $output, $text) { $text = trim($text); $length = strlen($text) + 4; $header = str_repeat('*', $length); $output->writeln([ '', '' . $header . '', '* ' . strtoupper($text) . ' *', '' . $header . '', ]); } }