From 93826089226b2553898b6e094cbe7ba495fe76c6 Mon Sep 17 00:00:00 2001 From: Kunal Mehta Date: Wed, 10 Sep 2014 14:51:16 -0700 Subject: [PATCH] Move Config::set() to MutableConfig::set() Introduces a new interface for Config types that are mutable. Not all Config instances should be mutable, like MultiConfig. Change-Id: I56e193cbbf72b7afdf551f60ea635fc347e14b3e --- includes/AutoLoader.php | 1 + includes/config/Config.php | 9 ----- includes/config/GlobalVarConfig.php | 5 ++- includes/config/MutableConfig.php | 38 +++++++++++++++++++ .../includes/config/GlobalVarConfigTest.php | 1 + 5 files changed, 44 insertions(+), 10 deletions(-) create mode 100644 includes/config/MutableConfig.php diff --git a/includes/AutoLoader.php b/includes/AutoLoader.php index 87cd5d5dfb..4c35bfd384 100644 --- a/includes/AutoLoader.php +++ b/includes/AutoLoader.php @@ -374,6 +374,7 @@ $wgAutoloadLocalClasses = array( 'ConfigException' => 'includes/config/ConfigException.php', 'ConfigFactory' => 'includes/config/ConfigFactory.php', 'GlobalVarConfig' => 'includes/config/GlobalVarConfig.php', + 'MutableConfig' => 'includes/config/MutableConfig.php', # includes/content 'AbstractContent' => 'includes/content/AbstractContent.php', diff --git a/includes/config/Config.php b/includes/config/Config.php index 68e90b4582..03d2cb990f 100644 --- a/includes/config/Config.php +++ b/includes/config/Config.php @@ -35,13 +35,4 @@ interface Config { * @throws ConfigException */ public function get( $name ); - - /** - * Set a configuration variable such a "Sitename" to something like "My Wiki" - * - * @param string $name Name of configuration option - * @param mixed $value Value to set - * @throws ConfigException - */ - public function set( $name, $value ); } diff --git a/includes/config/GlobalVarConfig.php b/includes/config/GlobalVarConfig.php index 0841a00419..1144384beb 100644 --- a/includes/config/GlobalVarConfig.php +++ b/includes/config/GlobalVarConfig.php @@ -53,9 +53,11 @@ class GlobalVarConfig implements Config { } /** - * @see Config::set + * @see MutableConfig::set + * @deprecated since 1.24 */ public function set( $name, $value ) { + wfDeprecated( __METHOD__, '1.24' ); $this->setWithPrefix( $this->prefix, $name, $value ); } @@ -81,6 +83,7 @@ class GlobalVarConfig implements Config { * @param string $prefix Prefix to use on the variable * @param string $name Variable name without prefix * @param mixed $value Value to set + * @deprecated since 1.24 */ protected function setWithPrefix( $prefix, $name, $value ) { $GLOBALS[$prefix . $name] = $value; diff --git a/includes/config/MutableConfig.php b/includes/config/MutableConfig.php new file mode 100644 index 0000000000..e765e3bc63 --- /dev/null +++ b/includes/config/MutableConfig.php @@ -0,0 +1,38 @@ +hideDeprecated( 'GlobalVarConfig::set' ); $this->maybeStashGlobal( $var ); $config = new GlobalVarConfig( $prefix ); $random = wfRandomString(); -- 2.20.1