aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/phpbb')
-rw-r--r--phpBB/phpbb/di/container_builder.php4
-rw-r--r--phpBB/phpbb/di/extension/tables.php29
2 files changed, 18 insertions, 15 deletions
diff --git a/phpBB/phpbb/di/container_builder.php b/phpBB/phpbb/di/container_builder.php
index 552b8c7a95..70ceb9b5e3 100644
--- a/phpBB/phpbb/di/container_builder.php
+++ b/phpBB/phpbb/di/container_builder.php
@@ -160,7 +160,6 @@ class container_builder
{
$this->container_extensions = [
new extension\core($this->get_config_path()),
- new extension\tables(),
];
if ($this->use_extensions)
@@ -168,6 +167,9 @@ class container_builder
$this->load_extensions();
}
+ // Add tables extension after all extensions
+ $this->container_extensions[] = new extension\tables();
+
// Inject the config
if ($this->config_php_file)
{
diff --git a/phpBB/phpbb/di/extension/tables.php b/phpBB/phpbb/di/extension/tables.php
index ff545750b7..40684b6038 100644
--- a/phpBB/phpbb/di/extension/tables.php
+++ b/phpBB/phpbb/di/extension/tables.php
@@ -22,26 +22,27 @@ use Symfony\Component\HttpKernel\DependencyInjection\Extension;
class tables extends Extension
{
/**
- * Loads a specific configuration.
- *
- * @param array $configs An array of configuration values
- * @param ContainerBuilder $container A ContainerBuilder instance
- *
- * @throws \InvalidArgumentException When provided tag is not defined in this extension
+ * {@inheritDoc}
*/
public function load(array $configs, ContainerBuilder $container)
{
- if (!$container->hasParameter('tables'))
- {
- return;
- }
+ // Tables is a reserved parameter and will be overwritten at all times
+ $tables = [];
- $tables = $container->getParameter('tables');
-
- foreach ($tables as $table_name => $table_value)
+ // Add access via 'tables' parameter to acquire array with all tables
+ $parameterBag = $container->getParameterBag();
+ $parameters = $parameterBag->all();
+ foreach ($parameters as $parameter_name => $parameter_value)
{
- $container->setParameter('tables.' . $table_name, $table_value);
+ if (!preg_match('/tables\.(.+)/', $parameter_name, $matches))
+ {
+ continue;
+ }
+
+ $tables[$matches[1]] = $parameter_value;
}
+
+ $container->setParameter('tables', $tables);
}
/**