Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 23 |
CRAP | |
0.00% |
0 / 141 |
| cli_iohandler | |
0.00% |
0 / 1 |
|
0.00% |
0 / 23 |
1482 | |
0.00% |
0 / 141 |
| set_style | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 4 |
|||
| get_input | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 12 |
|||
| get_raw_input | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
| set_input | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
| get_server_variable | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
| get_header_variable | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
| is_secure | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
| add_user_form_group | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
| send_response | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| add_error_message | |
0.00% |
0 / 1 |
20 | |
0.00% |
0 / 15 |
|||
| add_warning_message | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 11 |
|||
| add_log_message | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 7 |
|||
| add_success_message | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 11 |
|||
| set_task_count | |
0.00% |
0 / 1 |
20 | |
0.00% |
0 / 27 |
|||
| set_progress | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 12 |
|||
| finish_progress | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 8 |
|||
| request_refresh | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| set_active_stage_menu | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| set_finished_stage_menu | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| set_cookie | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| add_download_link | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| render_update_file_status | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| redirect | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| <?php | |
| /** | |
| * | |
| * This file is part of the phpBB Forum Software package. | |
| * | |
| * @copyright (c) phpBB Limited <https://www.phpbb.com> | |
| * @license GNU General Public License, version 2 (GPL-2.0) | |
| * | |
| * For full copyright and license information, please see | |
| * the docs/CREDITS.txt file. | |
| * | |
| */ | |
| namespace phpbb\install\helper\iohandler; | |
| use phpbb\install\exception\installer_exception; | |
| use Symfony\Component\Console\Output\OutputInterface; | |
| use Symfony\Component\Console\Style\OutputStyle; | |
| /** | |
| * Input-Output handler for the CLI frontend | |
| */ | |
| class cli_iohandler extends iohandler_base | |
| { | |
| /** | |
| * @var OutputInterface | |
| */ | |
| protected $output; | |
| /** | |
| * @var OutputStyle | |
| */ | |
| protected $io; | |
| /** | |
| * @var array | |
| */ | |
| protected $input_values = array(); | |
| /** | |
| * @var \Symfony\Component\Console\Helper\ProgressBar | |
| */ | |
| protected $progress_bar; | |
| /** | |
| * Set the style and output used to display feedback; | |
| * | |
| * @param OutputStyle $style | |
| * @param OutputInterface $output | |
| */ | |
| public function set_style(OutputStyle $style, OutputInterface $output) | |
| { | |
| $this->io = $style; | |
| $this->output = $output; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function get_input($name, $default, $multibyte = false) | |
| { | |
| $result = $default; | |
| if (isset($this->input_values[$name])) | |
| { | |
| $result = $this->input_values[$name]; | |
| } | |
| if ($multibyte) | |
| { | |
| return utf8_normalize_nfc($result); | |
| } | |
| return $result; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function get_raw_input($name, $default) | |
| { | |
| return $this->get_input($name, $default, true); | |
| } | |
| /** | |
| * Set input variable | |
| * | |
| * @param string $name Name of input variable | |
| * @param mixed $value Value of input variable | |
| */ | |
| public function set_input($name, $value) | |
| { | |
| $this->input_values[$name] = $value; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function get_server_variable($name, $default = '') | |
| { | |
| return $default; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function get_header_variable($name, $default = '') | |
| { | |
| return $default; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function is_secure() | |
| { | |
| return false; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function add_user_form_group($title, $form) | |
| { | |
| throw new installer_exception('MISSING_DATA'); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function send_response($no_more_output = false) | |
| { | |
| } | |
| /** | |
| * {@inheritdoc | |
| */ | |
| public function add_error_message($error_title, $error_description = false) | |
| { | |
| $this->io->newLine(); | |
| $message = $this->translate_message($error_title, $error_description); | |
| $message_string = $message['title'] . (!empty($message['description']) ? "\n" . $message['description'] : ''); | |
| if (strpos($message_string, '<br />') !== false) | |
| { | |
| $message_string = strip_tags(str_replace('<br />', "\n", $message_string)); | |
| } | |
| $this->io->error($message_string); | |
| if ($this->progress_bar !== null) | |
| { | |
| $this->io->newLine(2); | |
| $this->progress_bar->display(); | |
| } | |
| } | |
| /** | |
| * {@inheritdoc | |
| */ | |
| public function add_warning_message($warning_title, $warning_description = false) | |
| { | |
| $this->io->newLine(); | |
| $message = $this->translate_message($warning_title, $warning_description); | |
| $message_string = $message['title'] . (!empty($message['description']) ? "\n" . $message['description'] : ''); | |
| $this->io->warning($message_string); | |
| if ($this->progress_bar !== null) | |
| { | |
| $this->io->newLine(2); | |
| $this->progress_bar->display(); | |
| } | |
| } | |
| /** | |
| * {@inheritdoc | |
| */ | |
| public function add_log_message($log_title, $log_description = false) | |
| { | |
| if ($this->output->getVerbosity() > OutputInterface::VERBOSITY_NORMAL) | |
| { | |
| $message = $this->translate_message($log_title, $log_description); | |
| $this->output->writeln(sprintf('[%3d/%-3d] ---- %s', $this->current_task_progress, $this->task_progress_count, $message['title'])); | |
| } | |
| } | |
| /** | |
| * {@inheritdoc | |
| */ | |
| public function add_success_message($error_title, $error_description = false) | |
| { | |
| $this->io->newLine(); | |
| $message = $this->translate_message($error_title, $error_description); | |
| $message_string = $message['title'] . (!empty($message['description']) ? "\n" . $message['description'] : ''); | |
| $this->io->success($message_string); | |
| if ($this->progress_bar !== null) | |
| { | |
| $this->io->newLine(2); | |
| $this->progress_bar->display(); | |
| } | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function set_task_count($task_count, $restart = false) | |
| { | |
| parent::set_task_count($task_count, $restart); | |
| if ($this->output->getVerbosity() === OutputInterface::VERBOSITY_NORMAL) | |
| { | |
| if ($this->progress_bar !== null) | |
| { | |
| // Symfony's ProgressBar is immutable regarding task_count, so delete the old and create a new one. | |
| $this->progress_bar->clear(); | |
| } | |
| else | |
| { | |
| $this->io->newLine(2); | |
| } | |
| $this->progress_bar = $this->io->createProgressBar($task_count); | |
| $this->progress_bar->setFormat( | |
| " %current:3s%/%max:-3s% %bar% %percent:3s%%\n" . | |
| " %message%\n"); | |
| $this->progress_bar->setBarWidth(60); | |
| if (!defined('PHP_WINDOWS_VERSION_BUILD')) | |
| { | |
| $this->progress_bar->setEmptyBarCharacter('░'); // light shade character \u2591 | |
| $this->progress_bar->setProgressCharacter(''); | |
| $this->progress_bar->setBarCharacter('▓'); // dark shade character \u2593 | |
| } | |
| $this->progress_bar->setMessage(''); | |
| $this->progress_bar->start(); | |
| } | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function set_progress($task_lang_key, $task_number) | |
| { | |
| parent::set_progress($task_lang_key, $task_number); | |
| if ($this->progress_bar !== null) | |
| { | |
| $this->progress_bar->setProgress($this->current_task_progress); | |
| $this->progress_bar->setMessage($this->current_task_name); | |
| } | |
| else | |
| { | |
| $this->output->writeln(sprintf('[%3d/%-3d] %s', $this->current_task_progress, $this->task_progress_count, $this->current_task_name)); | |
| } | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function finish_progress($message_lang_key) | |
| { | |
| parent::finish_progress($message_lang_key); | |
| if ($this->progress_bar !== null) | |
| { | |
| $this->progress_bar->finish(); | |
| $this->progress_bar = null; | |
| } | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function request_refresh() | |
| { | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function set_active_stage_menu($menu_path) | |
| { | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function set_finished_stage_menu($menu_path) | |
| { | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function set_cookie($cookie_name, $cookie_value) | |
| { | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function add_download_link($route, $title, $msg = null) | |
| { | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function render_update_file_status($status_array) | |
| { | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function redirect($url, $use_ajax = false) | |
| { | |
| } | |
| } |