From 2ec50c0ff15837489f36b014a2e36470b1672508 Mon Sep 17 00:00:00 2001 From: Carlo Date: Tue, 15 Jul 2014 00:38:07 +0200 Subject: [PATCH] [ticket/12685] Add --safe-mode PHPBB3-12685 --- phpBB/bin/phpbbcli.php | 14 ++++++++++++-- phpBB/language/en/acp/common.php | 1 + phpBB/phpbb/console/application.php | 7 +++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/phpBB/bin/phpbbcli.php b/phpBB/bin/phpbbcli.php index 4c4367b31c..21940d8a51 100755 --- a/phpBB/bin/phpbbcli.php +++ b/phpBB/bin/phpbbcli.php @@ -12,6 +12,8 @@ * */ +use Symfony\Component\Console\Input\ArgvInput; + if (php_sapi_name() != 'cli') { echo 'This program must be run from the command line.' . PHP_EOL; @@ -39,7 +41,15 @@ $phpbb_class_loader_ext = new \phpbb\class_loader('\\', "{$phpbb_root_path}ext/" $phpbb_class_loader_ext->register(); $phpbb_container_builder = new \phpbb\di\container_builder($phpbb_config_php_file, $phpbb_root_path, $phpEx); -$phpbb_container_builder->set_dump_container(false); +$phpbb_container_builder->set_dump_container(true); + +$input = new ArgvInput(); + +if ($input->hasParameterOption(array('--safe-mode'))) +{ + $phpbb_container_builder->set_use_extensions(false); + $phpbb_container_builder->set_dump_container(false); +} $phpbb_container = $phpbb_container_builder->get_container(); $phpbb_container->get('request')->enable_super_globals(); @@ -50,4 +60,4 @@ $user->add_lang('acp/common'); $application = new \phpbb\console\application('phpBB Console', PHPBB_VERSION, $user); $application->register_container_commands($phpbb_container); -$application->run(); +$application->run($input); diff --git a/phpBB/language/en/acp/common.php b/phpBB/language/en/acp/common.php index 61c718195e..0c3df5862e 100644 --- a/phpBB/language/en/acp/common.php +++ b/phpBB/language/en/acp/common.php @@ -230,6 +230,7 @@ $lang = array_merge($lang, array( 'CLI_DESCRIPTION_CRON_RUN_ARGUMENT_1' => 'Name of the task to be run', 'CLI_DESCRIPTION_OPTION_SHELL' => 'Launch the shell.', + 'CLI_DESCRIPTION_OPTION_SAFE_MODE' => 'Run in Safe Mode (without extensions).', 'COLOUR_SWATCH' => 'Web-safe colour swatch', 'CONFIG_UPDATED' => 'Configuration updated successfully.', diff --git a/phpBB/phpbb/console/application.php b/phpBB/phpbb/console/application.php index 2aef48c93b..eac8dbea2d 100644 --- a/phpBB/phpbb/console/application.php +++ b/phpBB/phpbb/console/application.php @@ -67,6 +67,13 @@ class application extends \Symfony\Component\Console\Application $this->user->lang('CLI_DESCRIPTION_OPTION_SHELL') )); + $this->getDefinition()->addOption(new InputOption( + '--safe-mode', + null, + InputOption::VALUE_NONE, + $this->user->lang('CLI_DESCRIPTION_OPTION_SAFE_MODE') + )); + return parent::getHelp(); }