Merge branch '3.3.x'

This commit is contained in:
Marc Alexander 2021-06-29 22:24:45 +02:00
commit 96e399db72
No known key found for this signature in database
GPG key ID: 50E0D2423696F995
2 changed files with 27 additions and 8 deletions

View file

@ -13,20 +13,23 @@
namespace phpbb\config;
use phpbb\cache\driver\driver_interface as cache_interface;
use phpbb\db\driver\driver_interface as db_interface;
/**
* Configuration container class
*/
class db extends \phpbb\config\config
class db extends config
{
/**
* Cache instance
* @var \phpbb\cache\driver\driver_interface
* @var cache_interface
*/
protected $cache;
/**
* Database connection
* @var \phpbb\db\driver\driver_interface
* @var db_interface
*/
protected $db;
@ -39,16 +42,28 @@ class db extends \phpbb\config\config
/**
* Creates a configuration container with a default set of values
*
* @param \phpbb\db\driver\driver_interface $db Database connection
* @param \phpbb\cache\driver\driver_interface $cache Cache instance
* @param db_interface $db Database connection
* @param cache_interface $cache Cache instance
* @param string $table Configuration table name
*/
public function __construct(\phpbb\db\driver\driver_interface $db, \phpbb\cache\driver\driver_interface $cache, $table)
public function __construct(db_interface $db, cache_interface $cache, $table)
{
$this->db = $db;
$this->cache = $cache;
$this->table = $table;
$this->initialise($cache);
parent::__construct($this->config);
}
/**
* Initialise config with database and/or cached entries
*
* @param cache_interface $cache
*/
public function initialise(cache_interface $cache)
{
if (($config = $cache->get('config')) !== false)
{
$sql = 'SELECT config_name, config_value
@ -84,7 +99,7 @@ class db extends \phpbb\config\config
$cache->put('config', $cached_config);
}
parent::__construct($config);
$this->config = $config;
}
/**
@ -93,7 +108,7 @@ class db extends \phpbb\config\config
* @param String $key The configuration option's name
* @param bool $use_cache Whether this variable should be cached or if it
* changes too frequently to be efficiently cached
* @return null
* @return void
*/
public function delete($key, $use_cache = true)
{

View file

@ -72,6 +72,10 @@ class migrate extends \phpbb\console\command\db\migration_command
$this->migrator->create_migrations_table();
$this->cache->purge();
if ($this->config instanceof \phpbb\config\db)
{
$this->config->initialise($this->cache->get_driver());
}
$this->load_migrations();
$orig_version = $this->config['version'];