diff options
author | Marc Alexander <admin@m-a-styles.de> | 2019-05-14 21:20:51 +0200 |
---|---|---|
committer | Marc Alexander <admin@m-a-styles.de> | 2019-05-14 21:20:51 +0200 |
commit | d72498a9c3006210c49cb1690d079d52593db127 (patch) | |
tree | 05a63672dec2ed081da2a107989c85ba1649f3ed /phpBB/phpbb/di/extension/tables.php | |
parent | 61fa4f006aa00eb67dd4df8d21f426ce7e53962c (diff) | |
download | forums-d72498a9c3006210c49cb1690d079d52593db127.tar forums-d72498a9c3006210c49cb1690d079d52593db127.tar.gz forums-d72498a9c3006210c49cb1690d079d52593db127.tar.bz2 forums-d72498a9c3006210c49cb1690d079d52593db127.tar.xz forums-d72498a9c3006210c49cb1690d079d52593db127.zip |
[ticket/15987] Go back to previous table definition type
This will still allow using the 'tables' parameter array but will also ensure
full backward compatibility and compatibility with extensions that will add
more tables to the 'tables' array.
PHPBB3-15987
Diffstat (limited to 'phpBB/phpbb/di/extension/tables.php')
-rw-r--r-- | phpBB/phpbb/di/extension/tables.php | 29 |
1 files changed, 15 insertions, 14 deletions
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); } /** |