aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/config
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/includes/config')
-rw-r--r--phpBB/includes/config/config.php170
-rw-r--r--phpBB/includes/config/db.php207
-rw-r--r--phpBB/includes/config/db_text.php163
3 files changed, 0 insertions, 540 deletions
diff --git a/phpBB/includes/config/config.php b/phpBB/includes/config/config.php
deleted file mode 100644
index 4b533dd55c..0000000000
--- a/phpBB/includes/config/config.php
+++ /dev/null
@@ -1,170 +0,0 @@
-<?php
-/**
-*
-* @package phpBB3
-* @copyright (c) 2010 phpBB Group
-* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
-*
-*/
-
-/**
-* @ignore
-*/
-if (!defined('IN_PHPBB'))
-{
- exit;
-}
-
-/**
-* Configuration container class
-* @package phpBB3
-*/
-class phpbb_config implements ArrayAccess, IteratorAggregate, Countable
-{
- /**
- * The configuration data
- * @var array(string => string)
- */
- protected $config;
-
- /**
- * Creates a configuration container with a default set of values
- *
- * @param array(string => string) $config The configuration data.
- */
- public function __construct(array $config)
- {
- $this->config = $config;
- }
-
- /**
- * Retrieves an ArrayIterator over the configuration values.
- *
- * @return ArrayIterator An iterator over all config data
- */
- public function getIterator()
- {
- return new ArrayIterator($this->config);
- }
-
- /**
- * Checks if the specified config value exists.
- *
- * @param string $key The configuration option's name.
- * @return bool Whether the configuration option exists.
- */
- public function offsetExists($key)
- {
- return isset($this->config[$key]);
- }
-
- /**
- * Retrieves a configuration value.
- *
- * @param string $key The configuration option's name.
- * @return string The configuration value
- */
- public function offsetGet($key)
- {
- return (isset($this->config[$key])) ? $this->config[$key] : '';
- }
-
- /**
- * Temporarily overwrites the value of a configuration variable.
- *
- * The configuration change will not persist. It will be lost
- * after the request.
- *
- * @param string $key The configuration option's name.
- * @param string $value The temporary value.
- */
- public function offsetSet($key, $value)
- {
- $this->config[$key] = $value;
- }
-
- /**
- * Called when deleting a configuration value directly, triggers an error.
- *
- * @param string $key The configuration option's name.
- */
- public function offsetUnset($key)
- {
- trigger_error('Config values have to be deleted explicitly with the phpbb_config::delete($key) method.', E_USER_ERROR);
- }
-
- /**
- * Retrieves the number of configuration options currently set.
- *
- * @return int Number of config options
- */
- public function count()
- {
- return count($this->config);
- }
-
- /**
- * Removes a configuration option
- *
- * @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
- */
- public function delete($key, $use_cache = true)
- {
- unset($this->config[$key]);
- }
-
- /**
- * Sets a configuration option's value
- *
- * @param string $key The configuration option's name
- * @param string $value New configuration value
- * @param bool $use_cache Whether this variable should be cached or if it
- * changes too frequently to be efficiently cached.
- */
- public function set($key, $value, $use_cache = true)
- {
- $this->config[$key] = $value;
- }
-
- /**
- * Sets a configuration option's value only if the old_value matches the
- * current configuration value or the configuration value does not exist yet.
- *
- * @param string $key The configuration option's name
- * @param string $old_value Current configuration value
- * @param string $new_value New configuration value
- * @param bool $use_cache Whether this variable should be cached or if it
- * changes too frequently to be efficiently cached.
- * @return bool True if the value was changed, false otherwise.
- */
- public function set_atomic($key, $old_value, $new_value, $use_cache = true)
- {
- if (!isset($this->config[$key]) || $this->config[$key] == $old_value)
- {
- $this->config[$key] = $new_value;
- return true;
- }
- return false;
- }
-
- /**
- * Increments an integer configuration value.
- *
- * @param string $key The configuration option's name
- * @param int $increment Amount to increment by
- * @param bool $use_cache Whether this variable should be cached or if it
- * changes too frequently to be efficiently cached.
- */
- function increment($key, $increment, $use_cache = true)
- {
- if (!isset($this->config[$key]))
- {
- $this->config[$key] = 0;
- }
-
- $this->config[$key] += $increment;
- }
-}
diff --git a/phpBB/includes/config/db.php b/phpBB/includes/config/db.php
deleted file mode 100644
index b18369a479..0000000000
--- a/phpBB/includes/config/db.php
+++ /dev/null
@@ -1,207 +0,0 @@
-<?php
-/**
-*
-* @package phpBB3
-* @copyright (c) 2010 phpBB Group
-* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
-*
-*/
-
-/**
-* @ignore
-*/
-if (!defined('IN_PHPBB'))
-{
- exit;
-}
-
-/**
-* Configuration container class
-* @package phpBB3
-*/
-class phpbb_config_db extends phpbb_config
-{
- /**
- * Cache instance
- * @var phpbb_cache_driver_interface
- */
- protected $cache;
-
- /**
- * Database connection
- * @var phpbb_db_driver
- */
- protected $db;
-
- /**
- * Name of the database table used for configuration.
- * @var string
- */
- protected $table;
-
- /**
- * Creates a configuration container with a default set of values
- *
- * @param phpbb_db_driver $db Database connection
- * @param phpbb_cache_driver_interface $cache Cache instance
- * @param string $table Configuration table name
- */
- public function __construct(phpbb_db_driver $db, phpbb_cache_driver_interface $cache, $table)
- {
- $this->db = $db;
- $this->cache = $cache;
- $this->table = $table;
-
- if (($config = $cache->get('config')) !== false)
- {
- $sql = 'SELECT config_name, config_value
- FROM ' . $this->table . '
- WHERE is_dynamic = 1';
- $result = $this->db->sql_query($sql);
-
- while ($row = $this->db->sql_fetchrow($result))
- {
- $config[$row['config_name']] = $row['config_value'];
- }
- $this->db->sql_freeresult($result);
- }
- else
- {
- $config = $cached_config = array();
-
- $sql = 'SELECT config_name, config_value, is_dynamic
- FROM ' . $this->table;
- $result = $this->db->sql_query($sql);
-
- while ($row = $this->db->sql_fetchrow($result))
- {
- if (!$row['is_dynamic'])
- {
- $cached_config[$row['config_name']] = $row['config_value'];
- }
-
- $config[$row['config_name']] = $row['config_value'];
- }
- $this->db->sql_freeresult($result);
-
- $cache->put('config', $cached_config);
- }
-
- parent::__construct($config);
- }
-
- /**
- * Removes a configuration option
- *
- * @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
- */
- public function delete($key, $use_cache = true)
- {
- $sql = 'DELETE FROM ' . $this->table . "
- WHERE config_name = '" . $this->db->sql_escape($key) . "'";
- $this->db->sql_query($sql);
-
- unset($this->config[$key]);
-
- if ($use_cache)
- {
- $this->cache->destroy('config');
- }
- }
-
- /**
- * Sets a configuration option's value
- *
- * @param string $key The configuration option's name
- * @param string $value New configuration value
- * @param bool $use_cache Whether this variable should be cached or if it
- * changes too frequently to be efficiently cached.
- */
- public function set($key, $value, $use_cache = true)
- {
- $this->set_atomic($key, false, $value, $use_cache);
- }
-
- /**
- * Sets a configuration option's value only if the old_value matches the
- * current configuration value or the configuration value does not exist yet.
- *
- * @param string $key The configuration option's name
- * @param mixed $old_value Current configuration value or false to ignore
- * the old value
- * @param string $new_value New configuration value
- * @param bool $use_cache Whether this variable should be cached or if it
- * changes too frequently to be efficiently cached
- * @return bool True if the value was changed, false otherwise
- */
- public function set_atomic($key, $old_value, $new_value, $use_cache = true)
- {
- $sql = 'UPDATE ' . $this->table . "
- SET config_value = '" . $this->db->sql_escape($new_value) . "'
- WHERE config_name = '" . $this->db->sql_escape($key) . "'";
-
- if ($old_value !== false)
- {
- $sql .= " AND config_value = '" . $this->db->sql_escape($old_value) . "'";
- }
-
- $result = $this->db->sql_query($sql);
-
- if (!$this->db->sql_affectedrows($result) && isset($this->config[$key]))
- {
- return false;
- }
-
- if (!isset($this->config[$key]))
- {
- $sql = 'INSERT INTO ' . $this->table . ' ' . $this->db->sql_build_array('INSERT', array(
- 'config_name' => $key,
- 'config_value' => $new_value,
- 'is_dynamic' => ($use_cache) ? 0 : 1));
- $this->db->sql_query($sql);
- }
-
- if ($use_cache)
- {
- $this->cache->destroy('config');
- }
-
- $this->config[$key] = $new_value;
- return true;
- }
-
- /**
- * Increments an integer config value directly in the database.
- *
- * Using this method instead of setting the new value directly avoids race
- * conditions and unlike set_atomic it cannot fail.
- *
- * @param string $key The configuration option's name
- * @param int $increment Amount to increment by
- * @param bool $use_cache Whether this variable should be cached or if it
- * changes too frequently to be efficiently cached.
- */
- function increment($key, $increment, $use_cache = true)
- {
- if (!isset($this->config[$key]))
- {
- $this->set($key, '0', $use_cache);
- }
-
- $sql_update = $this->db->cast_expr_to_string($this->db->cast_expr_to_bigint('config_value') . ' + ' . (int) $increment);
-
- $this->db->sql_query('UPDATE ' . $this->table . '
- SET config_value = ' . $sql_update . "
- WHERE config_name = '" . $this->db->sql_escape($key) . "'");
-
- if ($use_cache)
- {
- $this->cache->destroy('config');
- }
-
- $this->config[$key] += $increment;
- }
-}
diff --git a/phpBB/includes/config/db_text.php b/phpBB/includes/config/db_text.php
deleted file mode 100644
index b365cb5c77..0000000000
--- a/phpBB/includes/config/db_text.php
+++ /dev/null
@@ -1,163 +0,0 @@
-<?php
-/**
-*
-* @package phpBB3
-* @copyright (c) 2013 phpBB Group
-* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
-*
-*/
-
-/**
-* @ignore
-*/
-if (!defined('IN_PHPBB'))
-{
- exit;
-}
-
-/**
-* Manages configuration options with an arbitrary length value stored in a TEXT
-* column. In constrast to class phpbb_config_db, values are never cached and
-* prefetched, but every get operation sends a query to the database.
-*
-* @package phpBB3
-*/
-class phpbb_config_db_text
-{
- /**
- * Database connection
- * @var phpbb_db_driver
- */
- protected $db;
-
- /**
- * Name of the database table used.
- * @var string
- */
- protected $table;
-
- /**
- * @param phpbb_db_driver $db Database connection
- * @param string $table Table name
- */
- public function __construct(phpbb_db_driver $db, $table)
- {
- $this->db = $db;
- $this->table = $this->db->sql_escape($table);
- }
-
- /**
- * Sets the configuration option with the name $key to $value.
- *
- * @param string $key The configuration option's name
- * @param string $value New configuration value
- *
- * @return null
- */
- public function set($key, $value)
- {
- $this->set_array(array($key => $value));
- }
-
- /**
- * Gets the configuration value for the name $key.
- *
- * @param string $key The configuration option's name
- *
- * @return string|null String result on success
- * null if there is no such option
- */
- public function get($key)
- {
- $map = $this->get_array(array($key));
-
- return isset($map[$key]) ? $map[$key] : null;
- }
-
- /**
- * Removes the configuration option with the name $key.
- *
- * @param string $key The configuration option's name
- *
- * @return null
- */
- public function delete($key)
- {
- $this->delete_array(array($key));
- }
-
- /**
- * Mass set configuration options: Receives an associative array,
- * treats array keys as configuration option names and associated
- * array values as their configuration option values.
- *
- * @param array $map Map from configuration names to values
- *
- * @return null
- */
- public function set_array(array $map)
- {
- $this->db->sql_transaction('begin');
-
- foreach ($map as $key => $value)
- {
- $sql = 'UPDATE ' . $this->table . "
- SET config_value = '" . $this->db->sql_escape($value) . "'
- WHERE config_name = '" . $this->db->sql_escape($key) . "'";
- $result = $this->db->sql_query($sql);
-
- if (!$this->db->sql_affectedrows($result))
- {
- $sql = 'INSERT INTO ' . $this->table . ' ' . $this->db->sql_build_array('INSERT', array(
- 'config_name' => $key,
- 'config_value' => $value,
- ));
- $this->db->sql_query($sql);
- }
- }
-
- $this->db->sql_transaction('commit');
- }
-
- /**
- * Mass get configuration options: Receives a set of configuration
- * option names and returns the result as a key => value map where
- * array keys are configuration option names and array values are
- * associated config option values.
- *
- * @param array $keys Set of configuration option names
- *
- * @return array Map from configuration names to values
- */
- public function get_array(array $keys)
- {
- $sql = 'SELECT *
- FROM ' . $this->table . '
- WHERE ' . $this->db->sql_in_set('config_name', $keys, false, true);
- $result = $this->db->sql_query($sql);
-
- $map = array();
- while ($row = $this->db->sql_fetchrow($result))
- {
- $map[$row['config_name']] = $row['config_value'];
- }
- $this->db->sql_freeresult($result);
-
- return $map;
- }
-
- /**
- * Mass delete configuration options.
- *
- * @param array $keys Set of configuration option names
- *
- * @return null
- */
- public function delete_array(array $keys)
- {
- $sql = 'DELETE
- FROM ' . $this->table . '
- WHERE ' . $this->db->sql_in_set('config_name', $keys, false, true);
- $result = $this->db->sql_query($sql);
- }
-}