aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpBB/config/services.yml3
-rw-r--r--phpBB/install/index.php24
-rw-r--r--phpBB/phpbb/di/container_factory.php25
3 files changed, 45 insertions, 7 deletions
diff --git a/phpBB/config/services.yml b/phpBB/config/services.yml
index 09dfc2fba2..ec56ae8e9a 100644
--- a/phpBB/config/services.yml
+++ b/phpBB/config/services.yml
@@ -39,9 +39,6 @@ services:
cache.driver:
class: %cache.driver.class%
- cache.driver.install:
- class: phpbb\cache\driver\file
-
class_loader:
class: phpbb\class_loader
arguments:
diff --git a/phpBB/install/index.php b/phpBB/install/index.php
index c8a745825a..e72a3bca9c 100644
--- a/phpBB/install/index.php
+++ b/phpBB/install/index.php
@@ -120,7 +120,29 @@ $phpbb_class_loader_ext = new \phpbb\class_loader('\\', "{$phpbb_root_path}ext/"
$phpbb_class_loader_ext->register();
// Set up container
-$phpbb_container = phpbb_create_install_container($phpbb_root_path, $phpEx);
+$phpbb_config_php_handler = new \phpbb\config_php($phpbb_root_path, $phpEx);
+$phpbb_container_factory = new \phpbb\di\container_factory($phpbb_config_php_handler, $phpbb_root_path, $phpEx);
+$phpbb_container_factory->set_use_extensions(false);
+$phpbb_container_factory->set_dump_container(false);
+$phpbb_container_factory->set_use_custom_pass(false);
+$phpbb_container_factory->set_inject_config(false);
+$phpbb_container_factory->set_compile_container(false);
+
+$other_config_path = $phpbb_root_path . 'install/update/new/config/';
+$config_path = file_exists($other_config_path . 'services.yml') ? $other_config_path : $phpbb_root_path . 'config/';
+$phpbb_container_factory->set_config_path($config_path);
+
+$phpbb_container_factory->set_custom_parameters(array(
+ 'core.root_path' => $phpbb_root_path,
+ 'core.adm_relative_path' => $phpbb_adm_relative_path,
+ 'core.php_ext' => $phpEx,
+ 'core.table_prefix' => '',
+ 'cache.driver.class' => 'phpbb\cache\driver\file',
+));
+
+$phpbb_container = $phpbb_container_factory->get_container();
+$phpbb_container->register('dbal.conn')->setSynthetic(true);
+$phpbb_container->compile();
$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/phpbb/di/container_factory.php b/phpBB/phpbb/di/container_factory.php
index 548bbf153f..a83c79f517 100644
--- a/phpBB/phpbb/di/container_factory.php
+++ b/phpBB/phpbb/di/container_factory.php
@@ -14,7 +14,6 @@
namespace phpbb\di;
use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Dumper\PhpDumper;
class container_factory
@@ -28,7 +27,7 @@ class container_factory
/**
* The container under construction
*
- * @var ContainerInterface
+ * @var ContainerBuilder
*/
protected $container;
@@ -87,6 +86,13 @@ class container_factory
protected $dump_container = true;
/**
+ * Indicates if the container should be compiled automatically (default to true).
+ *
+ * @var bool
+ */
+ protected $compile_container = true;
+
+ /**
* Custom parameters to inject into the container.
*
* Default to true:
@@ -159,7 +165,10 @@ class container_factory
$this->inject_custom_parameters();
- $this->container->compile();
+ if ($this->compile_container)
+ {
+ $this->container->compile();
+ }
if ($this->dump_container && defined('DEBUG'))
{
@@ -228,6 +237,16 @@ class container_factory
}
/**
+ * Set if the container should be compiled automatically (default to true).
+ *
+ * @var bool $dump_container
+ */
+ public function set_compile_container($compile_container)
+ {
+ $this->compile_container = $compile_container;
+ }
+
+ /**
* Set a custom path to find the configuration of the container
*
* @param string $config_path