aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/bin/phpbbcli.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/bin/phpbbcli.php')
-rwxr-xr-xphpBB/bin/phpbbcli.php72
1 files changed, 59 insertions, 13 deletions
diff --git a/phpBB/bin/phpbbcli.php b/phpBB/bin/phpbbcli.php
index 49f4ca13e7..e1f81662d2 100755
--- a/phpBB/bin/phpbbcli.php
+++ b/phpBB/bin/phpbbcli.php
@@ -2,12 +2,18 @@
<?php
/**
*
-* @package phpBB3
-* @copyright (c) 2013 phpBB Group
-* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
+* 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.
*
*/
+use Symfony\Component\Console\Input\ArgvInput;
+
if (php_sapi_name() != 'cli')
{
echo 'This program must be run from the command line.' . PHP_EOL;
@@ -15,22 +21,62 @@ if (php_sapi_name() != 'cli')
}
define('IN_PHPBB', true);
+
$phpbb_root_path = __DIR__ . '/../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'includes/startup.' . $phpEx);
-require($phpbb_root_path . 'config.' . $phpEx);
-require($phpbb_root_path . 'includes/constants.' . $phpEx);
-require($phpbb_root_path . 'includes/functions.' . $phpEx);
-require($phpbb_root_path . 'includes/functions_container.' . $phpEx);
require($phpbb_root_path . 'phpbb/class_loader.' . $phpEx);
$phpbb_class_loader = new \phpbb\class_loader('phpbb\\', "{$phpbb_root_path}phpbb/", $phpEx);
$phpbb_class_loader->register();
-$phpbb_class_loader_ext = new \phpbb\class_loader('\\', "{$phpbb_root_path}ext/", $phpEx);
-$phpbb_class_loader_ext->register();
-$phpbb_container = phpbb_create_update_container($phpbb_root_path, $phpEx, "$phpbb_root_path/config");
+$phpbb_config_php_file = new \phpbb\config_php_file($phpbb_root_path, $phpEx);
+extract($phpbb_config_php_file->get_all());
+
+if (!defined('PHPBB_ENVIRONMENT'))
+{
+ @define('PHPBB_ENVIRONMENT', 'production');
+}
+
+require($phpbb_root_path . 'includes/constants.' . $phpEx);
+require($phpbb_root_path . 'includes/functions.' . $phpEx);
+require($phpbb_root_path . 'includes/functions_admin.' . $phpEx);
+require($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx);
+
+$phpbb_container_builder = new \phpbb\di\container_builder($phpbb_root_path, $phpEx);
+$phpbb_container = $phpbb_container_builder->with_config($phpbb_config_php_file);
+
+$input = new ArgvInput();
+
+if ($input->hasParameterOption(array('--env')))
+{
+ $phpbb_container_builder->with_environment($input->getParameterOption('--env'));
+}
+
+if ($input->hasParameterOption(array('--safe-mode')))
+{
+ $phpbb_container_builder->without_extensions();
+ $phpbb_container_builder->without_cache();
+}
+else
+{
+ $phpbb_class_loader_ext = new \phpbb\class_loader('\\', "{$phpbb_root_path}ext/", $phpEx);
+ $phpbb_class_loader_ext->register();
+}
+
+$phpbb_container = $phpbb_container_builder->get_container();
+$phpbb_container->get('request')->enable_super_globals();
+require($phpbb_root_path . 'includes/compatibility_globals.' . $phpEx);
+
+/* @var $user \phpbb\user */
+$user = $phpbb_container->get('user');
+$user->add_lang('acp/common');
+$user->add_lang('cli');
+
+/* @var $lang \phpbb\language\language */
+$lang = $phpbb_container->get('language');
-$application = new \phpbb\console\application('phpBB Console', PHPBB_VERSION);
-$application->register_container_commands($phpbb_container);
-$application->run();
+$application = new \phpbb\console\application('phpBB Console', PHPBB_VERSION, $lang);
+$application->setDispatcher($phpbb_container->get('dispatcher'));
+$application->register_container_commands($phpbb_container->get('console.command_collection'));
+$application->run($input);