mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-07 20:08:53 +00:00
Merge branch '3.3.x'
This commit is contained in:
commit
12bff3ca31
6 changed files with 85 additions and 1 deletions
|
@ -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)
|
||||
{
|
||||
|
|
59
phpBB/phpbb/di/extension/tables.php
Normal file
59
phpBB/phpbb/di/extension/tables.php
Normal 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';
|
||||
}
|
||||
}
|
|
@ -77,6 +77,18 @@ namespace
|
|||
$this->assertTrue($container->isFrozen());
|
||||
}
|
||||
|
||||
public function test_tables_mapping()
|
||||
{
|
||||
$this->builder->without_cache();
|
||||
$container = $this->builder->get_container();
|
||||
$this->assertTrue($container->hasParameter('tables'));
|
||||
$tables = $container->getParameter('tables');
|
||||
$this->assertGreaterThan(0, count($tables));
|
||||
$this->assertTrue($container->hasParameter('tables.foo_bar'));
|
||||
$this->assertTrue(isset($tables['foo_bar']));
|
||||
$this->assertEquals($tables['acl_groups'], 'phpbb_some_other');
|
||||
}
|
||||
|
||||
public function test_without_cache()
|
||||
{
|
||||
$this->builder->without_cache();
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
parameters:
|
||||
core: true
|
||||
tables.acl_groups: '%core.table_prefix%acl_groups'
|
||||
tables.acl_options: '%core.table_prefix%acl_options'
|
||||
tables.acl_roles: '%core.table_prefix%acl_roles'
|
||||
|
||||
services:
|
||||
config.php:
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
parameters:
|
||||
core: true
|
||||
tables.acl_groups: '%core.table_prefix%acl_groups'
|
||||
tables.acl_options: '%core.table_prefix%acl_options'
|
||||
tables.acl_roles: '%core.table_prefix%acl_roles'
|
||||
|
||||
services:
|
||||
config.php:
|
||||
|
|
|
@ -1,2 +1,4 @@
|
|||
parameters:
|
||||
enabled_4: true
|
||||
tables.foo_bar: '%core.table_prefix%foo_bar'
|
||||
tables.acl_groups: '%core.table_prefix%some_other'
|
||||
|
|
Loading…
Add table
Reference in a new issue