diff options
| author | Nathan Guse <nathaniel.guse@gmail.com> | 2013-07-23 11:13:25 -0500 |
|---|---|---|
| committer | Nathan Guse <nathaniel.guse@gmail.com> | 2013-07-23 11:13:25 -0500 |
| commit | 485c6ab3553f518b157610ee1144bbcbef63f797 (patch) | |
| tree | 0c50392c4716511e118eeabd3f48cceb3ac7e906 /phpBB/phpbb/config/config.php | |
| parent | 41d8bfa974900c9befbde06cc08060eb8a552ec8 (diff) | |
| parent | be59885d5fd4b44f1c43994dec928eda816f9ab8 (diff) | |
| download | forums-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.php | 170 |
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; + } +} |
