aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpBB/common.php17
-rw-r--r--phpBB/config/services.yml3
-rw-r--r--phpBB/phpbb/config_php.php77
-rw-r--r--phpBB/phpbb/di/container_factory.php57
4 files changed, 98 insertions, 56 deletions
diff --git a/phpBB/common.php b/phpBB/common.php
index a30b7b989f..901c0bd713 100644
--- a/phpBB/common.php
+++ b/phpBB/common.php
@@ -21,10 +21,14 @@ if (!defined('IN_PHPBB'))
}
require($phpbb_root_path . 'includes/startup.' . $phpEx);
-require($phpbb_root_path . 'phpbb/di/container_factory.' . $phpEx);
+require($phpbb_root_path . 'phpbb/class_loader.' . $phpEx);
+
+// Setup class loader first
+$phpbb_class_loader = new \phpbb\class_loader('phpbb\\', "{$phpbb_root_path}phpbb/", $phpEx);
+$phpbb_class_loader->register();
-$factory = new \phpbb\di\container_factory($phpbb_root_path, $phpEx);
-$config_file_data = $factory->load_config_file();
+$config_php_handler = new \phpbb\config_php($phpbb_root_path, $phpEx);
+$config_file_data = $config_php_handler->load_config_file();
extract($config_file_data);
if (!defined('PHPBB_INSTALLED'))
@@ -76,8 +80,6 @@ $phpbb_adm_relative_path = (isset($phpbb_adm_relative_path)) ? $phpbb_adm_relati
$phpbb_admin_path = (defined('PHPBB_ADMIN_PATH')) ? PHPBB_ADMIN_PATH : $phpbb_root_path . $phpbb_adm_relative_path;
// Include files
-require($phpbb_root_path . 'phpbb/class_loader.' . $phpEx);
-
require($phpbb_root_path . 'includes/functions.' . $phpEx);
require($phpbb_root_path . 'includes/functions_content.' . $phpEx);
include($phpbb_root_path . 'includes/functions_compatibility.' . $phpEx);
@@ -88,18 +90,15 @@ require($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx);
// Set PHP error handler to ours
set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler');
-// Setup class loader first
-$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_load_extensions_autoloaders($phpbb_root_path);
// Set up container
+$factory = new \phpbb\di\container_factory($config_php_handler, $phpbb_root_path, $phpEx);
$phpbb_container = $factory->get_container();
-
$phpbb_class_loader->set_cache($phpbb_container->get('cache.driver'));
$phpbb_class_loader_ext->set_cache($phpbb_container->get('cache.driver'));
diff --git a/phpBB/config/services.yml b/phpBB/config/services.yml
index 735a49c99b..09dfc2fba2 100644
--- a/phpBB/config/services.yml
+++ b/phpBB/config/services.yml
@@ -69,6 +69,9 @@ services:
- @cache.driver
- %tables.config%
+ config.php:
+ synthetic: true
+
config_text:
class: phpbb\config\db_text
arguments:
diff --git a/phpBB/phpbb/config_php.php b/phpBB/phpbb/config_php.php
new file mode 100644
index 0000000000..a92950909d
--- /dev/null
+++ b/phpBB/phpbb/config_php.php
@@ -0,0 +1,77 @@
+<?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;
+
+class config_php
+{
+ /** @var string phpBB Root Path */
+ protected $phpbb_root_path;
+
+ /** @var string php file extension */
+ protected $php_ext;
+
+ /**
+ * Indicates if the php config file has been loaded.
+ *
+ * @var bool
+ */
+ protected $config_loaded = false;
+
+ /**
+ * The content of the php config file
+ *
+ * @var array
+ */
+ protected $config_data = array();
+
+ /**
+ * Constructor
+ *
+ * @param string $phpbb_root_path Path to the phpbb includes directory.
+ * @param string $php_ext php file extension
+ */
+ function __construct($phpbb_root_path, $php_ext)
+ {
+ $this->phpbb_root_path = $phpbb_root_path;
+ $this->php_ext = $php_ext;
+ }
+
+ /**
+ * Load the config file, store the information and return them
+ *
+ * @return bool|array Return the content of the config file or false if the file does not exists.
+ */
+ public function load_config_file()
+ {
+ if (!$this->config_loaded)
+ {
+ if (file_exists($this->phpbb_root_path . 'config.' . $this->php_ext))
+ {
+ $x7eeee37ce4d5f1ce4d968ed8fdd9bcbb = null;
+ $x7eeee37ce4d5f1ce4d968ed8fdd9bcbb = get_defined_vars();
+
+ require($this->phpbb_root_path . 'config.' . $this->php_ext);
+ $this->config_data = array_diff_key(get_defined_vars(), $x7eeee37ce4d5f1ce4d968ed8fdd9bcbb);
+
+ $this->config_loaded = true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ return $this->config_data;
+ }
+}
diff --git a/phpBB/phpbb/di/container_factory.php b/phpBB/phpbb/di/container_factory.php
index 50844ba5d0..37fe9f486f 100644
--- a/phpBB/phpbb/di/container_factory.php
+++ b/phpBB/phpbb/di/container_factory.php
@@ -43,13 +43,6 @@ class container_factory
protected $installed_exts = null;
/**
- * Indicates if the php config file has been loaded.
- *
- * @var bool
- */
- protected $config_loaded = false;
-
- /**
* The content of the php config file
*
* @var array
@@ -109,11 +102,13 @@ class container_factory
/**
* Constructor
*
+ * @param \phpbb\config_php $config_php_handler
* @param string $phpbb_root_path Path to the phpbb includes directory.
* @param string $php_ext php file extension
*/
- function __construct($phpbb_root_path, $php_ext)
+ function __construct(\phpbb\config_php $config_php_handler, $phpbb_root_path, $php_ext)
{
+ $this->config_php_handler = $config_php_handler;
$this->phpbb_root_path = $phpbb_root_path;
$this->php_ext = $php_ext;
}
@@ -135,9 +130,9 @@ class container_factory
{
if ($this->config_path === null)
{
- $config_path = $this->phpbb_root_path . 'config';
+ $this->config_path = $this->phpbb_root_path . 'config';
}
- $container_extensions = array(new \phpbb\di\extension\core($config_path));
+ $container_extensions = array(new \phpbb\di\extension\core($this->config_path));
if ($this->use_extensions)
{
@@ -147,7 +142,7 @@ class container_factory
if ($this->inject_config)
{
- $this->load_config_file();
+ $this->config_data = $this->config_php_handler->load_config_file();
$container_extensions[] = new \phpbb\di\extension\config($this->config_data);
}
@@ -169,11 +164,7 @@ class container_factory
}
}
- // Impossible because we have a compiled (and so frozen) container
- /*if ($this->inject_config)
- {
- $this->inject_config();
- }*/
+ $this->container->set('config.php', $this->config_php_handler);
// Frozen container, we can't modify either the services or the parameters
//$this->inject_dbal();
@@ -182,34 +173,6 @@ class container_factory
}
/**
- * Load the config file, store the information and return them
- *
- * @return bool|array Return the content of the config file or false if the file does not exists.
- */
- public function load_config_file()
- {
- if (!$this->config_loaded)
- {
- if (file_exists($this->phpbb_root_path . 'config.' . $this->php_ext))
- {
- $x7eeee37ce4d5f1ce4d968ed8fdd9bcbb = null;
- $x7eeee37ce4d5f1ce4d968ed8fdd9bcbb = get_defined_vars();
-
- require($this->phpbb_root_path . 'config.' . $this->php_ext);
- $this->config_data = array_diff_key(get_defined_vars(), $x7eeee37ce4d5f1ce4d968ed8fdd9bcbb);
-
- $this->config_loaded = true;
- }
- else
- {
- return false;
- }
- }
-
- return $this->config_data;
- }
-
- /**
* Set if the extensions should be used.
*
* @param bool $use_extensions
@@ -308,7 +271,7 @@ class container_factory
{
if ($this->dbal_connection === null)
{
- $this->load_config_file();
+ $this->config_data = $this->config_php_handler->load_config_file();
$dbal_driver_class = phpbb_convert_30_dbms_to_31($this->config_data['dbms']);
$this->dbal_connection = new $dbal_driver_class();
$this->dbal_connection->sql_connect(
@@ -378,8 +341,8 @@ class container_factory
if ($this->custom_parameters === null)
{
$this->custom_parameters = array(
- 'core.root_path', $this->phpbb_root_path,
- 'core.php_ext', $this->php_ext,
+ 'core.root_path' => $this->phpbb_root_path,
+ 'core.php_ext' => $this->php_ext,
);
}