diff options
Diffstat (limited to 'phpBB/phpbb')
| -rw-r--r-- | phpBB/phpbb/di/container_builder.php | 4 | ||||
| -rw-r--r-- | phpBB/phpbb/di/extension/tables.php | 29 | 
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);  	}  	/**  | 
