aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/config/config.php
diff options
context:
space:
mode:
authorNathan Guse <nathaniel.guse@gmail.com>2013-07-23 11:13:25 -0500
committerNathan Guse <nathaniel.guse@gmail.com>2013-07-23 11:13:25 -0500
commit485c6ab3553f518b157610ee1144bbcbef63f797 (patch)
tree0c50392c4716511e118eeabd3f48cceb3ac7e906 /phpBB/phpbb/config/config.php
parent41d8bfa974900c9befbde06cc08060eb8a552ec8 (diff)
parentbe59885d5fd4b44f1c43994dec928eda816f9ab8 (diff)
downloadforums-485c6ab3553f518b157610ee1144bbcbef63f797.tar
forums-485c6ab3553f518b157610ee1144bbcbef63f797.tar.gz
forums-485c6ab3553f518b157610ee1144bbcbef63f797.tar.bz2
forums-485c6ab3553f518b157610ee1144bbcbef63f797.tar.xz
forums-485c6ab3553f518b157610ee1144bbcbef63f797.zip
Merge branch 'develop' of github.com:phpbb/phpbb3 into ticket/11667
# By Joas Schilling (224) and others # Via Andreas Fischer (23) and others * 'develop' of github.com:phpbb/phpbb3: (385 commits) [ticket/11734] Readd accidently removed language strings of forum permissions [ticket/11620] Whitespace and combine function into test_case [ticket/11620] Move check_ban_test functions to setUp/tearDown for clarity [ticket/11620] Changed incorrect global variable [ticket/11620] Minor indentation changes and comment clarity [ticket/11733] Fix "Illegal offset type" Warning caused by overall feed [ticket/11733] Add browse test for feed.php [ticket/11731] Remove static calls to captcha garbage collector [ticket/11728] Replace topic_approved with topic_visibility [ticket/11620] Expected and actual test conditions wrongly swapped [ticket/11620] Space between . in directory import concatenation [ticket/11620] Changes to match merge [ticket/11620] Changes for code guidelines consistency [ticket/11620] Fix a static calls to non-static for session captcha [ticket/11620] Cleanup creation_test that was renamed on a cherry-pick [ticket/11620] Update auth_provider for new interface [ticket/11620] Added garbage_collection_test [ticket/11620] Fixed check_ban_test errors with cache and ban warning message [ticket/11620] Fixed a typo on check_ban_test [ticket/11620] Refactored check_isvalid_test to use session_test_case ...
Diffstat (limited to 'phpBB/phpbb/config/config.php')
-rw-r--r--phpBB/phpbb/config/config.php170
1 files changed, 170 insertions, 0 deletions
diff --git a/phpBB/phpbb/config/config.php b/phpBB/phpbb/config/config.php
new file mode 100644
index 0000000000..4b533dd55c
--- /dev/null
+++ b/phpBB/phpbb/config/config.php
@@ -0,0 +1,170 @@
+<?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;
+ }
+}