diff options
| author | Nils Adermann <naderman@naderman.de> | 2011-01-11 23:55:10 +0100 |
|---|---|---|
| committer | Nils Adermann <naderman@naderman.de> | 2011-01-12 00:21:12 +0100 |
| commit | 129d3c53bc6f826ae9a9d484fda4f38f6963b375 (patch) | |
| tree | 59f8fdb8586dff175c6eccbbe2661a3cc56d0aad | |
| parent | 6b1e343d8dae618afd0cb04173749f005c10e376 (diff) | |
| download | forums-129d3c53bc6f826ae9a9d484fda4f38f6963b375.tar forums-129d3c53bc6f826ae9a9d484fda4f38f6963b375.tar.gz forums-129d3c53bc6f826ae9a9d484fda4f38f6963b375.tar.bz2 forums-129d3c53bc6f826ae9a9d484fda4f38f6963b375.tar.xz forums-129d3c53bc6f826ae9a9d484fda4f38f6963b375.zip | |
[task/config-class] Correctly merge cached config with dynamically loaded data.
PHPBB3-9988
| -rw-r--r-- | phpBB/includes/config/db.php | 6 | ||||
| -rw-r--r-- | tests/config/db_test.php | 11 |
2 files changed, 16 insertions, 1 deletions
diff --git a/phpBB/includes/config/db.php b/phpBB/includes/config/db.php index 1e07e1f67f..a753d12cd0 100644 --- a/phpBB/includes/config/db.php +++ b/phpBB/includes/config/db.php @@ -52,7 +52,11 @@ class phpbb_config_db extends phpbb_config FROM ' . $this->table . ' WHERE is_dynamic = 1'; $result = $this->db->sql_query($sql); - $config += $this->db->sql_fetchrowset($result); + + while ($row = $this->db->sql_fetchrow($result)) + { + $config[$row['config_name']] = $row['config_value']; + } $this->db->sql_freeresult($result); } else diff --git a/tests/config/db_test.php b/tests/config/db_test.php index 07f3bf8d5a..e291c05c8f 100644 --- a/tests/config/db_test.php +++ b/tests/config/db_test.php @@ -35,6 +35,17 @@ class phpbb_config_db_test extends phpbb_database_test_case $this->assertEquals('42', $this->config['bar']); } + public function test_load_cached() + { + $cache = new phpbb_mock_cache(array('config' => array('x' => 'y'))); + $this->config = new phpbb_config_db($this->db, $cache, 'phpbb_config'); + + $this->assertTrue(!isset($this->config['foo'])); + $this->assertEquals('42', $this->config['bar']); + + $this->assertEquals('y', $this->config['x']); + } + public function test_offset_set() { $this->config['foo'] = 'x'; // temporary set |
