aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Fischer <bantu@phpbb.com>2012-09-14 13:34:23 +0200
committerAndreas Fischer <bantu@phpbb.com>2012-09-14 13:34:23 +0200
commitf1fb555ea32fdd06dfdcae35c072e44b6c243126 (patch)
treebb402fd1c11ed52139e620250db0af22a2a6ee36
parentd221f2901a19128b45e50988eb926669318893ba (diff)
parent298fa894e7ea0807a295cd0ed55cabef8a27a3f3 (diff)
downloadforums-f1fb555ea32fdd06dfdcae35c072e44b6c243126.tar
forums-f1fb555ea32fdd06dfdcae35c072e44b6c243126.tar.gz
forums-f1fb555ea32fdd06dfdcae35c072e44b6c243126.tar.bz2
forums-f1fb555ea32fdd06dfdcae35c072e44b6c243126.tar.xz
forums-f1fb555ea32fdd06dfdcae35c072e44b6c243126.zip
Merge remote-tracking branch 'imkingdavid/ticket/11086' into develop
* imkingdavid/ticket/11086: [ticket/11086] Move DI processing below $request definition [ticket/11086] Fix database_update.php to use Dependency Injection Container
-rw-r--r--phpBB/install/database_update.php46
1 files changed, 33 insertions, 13 deletions
diff --git a/phpBB/install/database_update.php b/phpBB/install/database_update.php
index 0b470ced26..5fa6166913 100644
--- a/phpBB/install/database_update.php
+++ b/phpBB/install/database_update.php
@@ -7,6 +7,10 @@
*
*/
+use Symfony\Component\Config\FileLocator;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
+
define('UPDATES_TO_VERSION', '3.1.0-dev');
// Enter any version to update from to test updates. The version within the db will not be updated.
@@ -107,21 +111,37 @@ if (!defined('EXT_TABLE'))
define('EXT_TABLE', $table_prefix . 'ext');
}
-$phpbb_class_loader_ext = new phpbb_class_loader('phpbb_ext_', $phpbb_root_path . 'ext/', ".$phpEx");
-$phpbb_class_loader_ext->register();
-$phpbb_class_loader = new phpbb_class_loader('phpbb_', $phpbb_root_path . 'includes/', ".$phpEx");
-$phpbb_class_loader->register();
+$phpbb_container = new ContainerBuilder();
+$loader = new YamlFileLoader($phpbb_container, new FileLocator(__DIR__.'/../config'));
+$loader->load('services.yml');
+
+// We must include the DI processor class files because the class loader
+// is not yet set up
+require($phpbb_root_path . 'includes/di/processor/interface.' . $phpEx);
+require($phpbb_root_path . 'includes/di/processor/config.' . $phpEx);
+$processor = new phpbb_di_processor_config($phpbb_root_path . 'config.' . $phpEx, $phpbb_root_path, $phpEx);
+$processor->process($phpbb_container);
+
+// Setup class loader first
+$phpbb_class_loader = $phpbb_container->get('class_loader');
+$phpbb_class_loader_ext = $phpbb_container->get('class_loader.ext');
// set up caching
-$cache_factory = new phpbb_cache_factory($acm_type);
-$cache = $cache_factory->get_service();
-$phpbb_class_loader_ext->set_cache($cache->get_driver());
-$phpbb_class_loader->set_cache($cache->get_driver());
-
-$phpbb_dispatcher = new phpbb_event_dispatcher();
-$request = new phpbb_request();
-$user = new phpbb_user();
-$db = new $sql_db();
+$cache = $phpbb_container->get('cache');
+
+// Instantiate some basic classes
+$phpbb_dispatcher = $phpbb_container->get('dispatcher');
+$request = $phpbb_container->get('request');
+$user = $phpbb_container->get('user');
+$auth = $phpbb_container->get('auth');
+$db = $phpbb_container->get('dbal.conn');
+
+$ids = array_keys($phpbb_container->findTaggedServiceIds('container.processor'));
+foreach ($ids as $id)
+{
+ $processor = $phpbb_container->get($id);
+ $processor->process($phpbb_container);
+}
// make sure request_var uses this request instance
request_var('', 0, false, false, $request); // "dependency injection" for a function