1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-30 21:40:43 +02:00

Merge pull request #5583 from marc1706/ticket/15987

[ticket/15987] Table parameters as array
This commit is contained in:
Marc Alexander
2019-06-05 21:45:42 +02:00
6 changed files with 85 additions and 1 deletions

View File

@@ -158,13 +158,18 @@ class container_builder
}
else
{
$this->container_extensions = array(new extension\core($this->get_config_path()));
$this->container_extensions = [
new extension\core($this->get_config_path()),
];
if ($this->use_extensions)
{
$this->load_extensions();
}
// Add tables extension after all extensions
$this->container_extensions[] = new extension\tables();
// Inject the config
if ($this->config_php_file)
{

View File

@@ -0,0 +1,59 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\di\extension;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
/**
* Container tables extension
*/
class tables extends Extension
{
/**
* {@inheritDoc}
*/
public function load(array $configs, ContainerBuilder $container)
{
// Tables is a reserved parameter and will be overwritten at all times
$tables = [];
// Add access via 'tables' parameter to acquire array with all tables
$parameterBag = $container->getParameterBag();
$parameters = $parameterBag->all();
foreach ($parameters as $parameter_name => $parameter_value)
{
if (!preg_match('/tables\.(.+)/', $parameter_name, $matches))
{
continue;
}
$tables[$matches[1]] = $parameter_value;
}
$container->setParameter('tables', $tables);
}
/**
* Returns the recommended alias to use in XML.
*
* This alias is also the mandatory prefix to use when using YAML.
*
* @return string The alias
*/
public function getAlias()
{
return 'tables';
}
}