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; @@ -86,6 +85,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. * @@ -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')) { @@ -227,6 +236,16 @@ class container_factory $this->dump_container = $dump_container; } + /** + * 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 *