Back out config table and related code
authorReedy <reedy@wikimedia.org>
Mon, 22 Oct 2012 22:51:26 +0000 (23:51 +0100)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 29 Oct 2012 15:17:24 +0000 (15:17 +0000)
Change-Id: I4fa180d45984a4ec2b2c7b1149015c6dad14c5f0

16 files changed:
includes/AutoLoader.php
includes/conf/Conf.php [deleted file]
includes/conf/DatabaseConf.php [deleted file]
includes/conf/DefaultSettings.php [deleted file]
includes/installer/Ibm_db2Updater.php
includes/installer/MysqlUpdater.php
includes/installer/OracleUpdater.php
includes/installer/PostgresUpdater.php
includes/installer/SqliteUpdater.php
maintenance/archives/patch-config.sql [deleted file]
maintenance/ibm_db2/tables.sql
maintenance/oracle/archives/patch-config.sql [deleted file]
maintenance/oracle/tables.sql
maintenance/postgres/archives/patch-config.sql [deleted file]
maintenance/postgres/tables.sql
maintenance/tables.sql

index c97c95a..0cd81c3 100644 (file)
@@ -446,11 +446,6 @@ $wgAutoloadLocalClasses = array(
        'TitleDependency' => 'includes/cache/CacheDependency.php',
        'TitleListDependency' => 'includes/cache/CacheDependency.php',
 
-       # includes/conf
-       'Conf' => 'includes/conf/Conf.php',
-       'DatabaseConf' => 'includes/conf/DatabaseConf.php',
-       'DefaultSettings' => 'includes/conf/DefaultSettings.php',
-
        # includes/context
        'ContextSource' => 'includes/context/ContextSource.php',
        'DerivativeContext' => 'includes/context/DerivativeContext.php',
diff --git a/includes/conf/Conf.php b/includes/conf/Conf.php
deleted file mode 100644 (file)
index 22c621f..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-<?php
-/**
- * Base configuration class.
- *
- * Get some configuration variable:
- *   $mySetting = Conf::get( 'mySetting' );
- *
- * Copyright © 2011 Chad Horohoe <chadh@wikimedia.org>
- * http://www.mediawiki.org/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @defgroup Config Config
- */
-abstract class Conf {
-       /**
-        * A special value to return when default config items do not exist. Use
-        * this to differentiate from 'null' which may be a valid config value.
-        *
-        * Please don't ever make this a default (or accepted) value for your
-        * configuration. It's liable to Break Something.
-        */
-       const NO_SUCH_DEFAULT_CONFIG = 'mw-no-such-default-config';
-
-       /**
-        * The Wiki ID (usually $wgDBname)
-        * @var String
-        */
-       private $wikiId;
-
-       /**
-        * Singleton
-        * @var Conf
-        */
-       private static $__instance;
-
-       /**
-        * Stores of the core defaults, extension defaults and wiki overrides
-        *
-        * @var array
-        */
-       protected $defaults, $extensionDefaults, $values = array();
-
-       /**
-        * Constructor. Children should call this if implementing.
-        * @param $confConfig Array of config vars
-        */
-       protected function __construct( $confConfig ) {
-               $this->wikiId = $confConfig['wikiId'];
-               $this->defaults = (array)(new DefaultSettings);
-               // @todo implement this:
-               // $this->initExtensionDefaults();
-               $this->initChangedSettings();
-               if( isset( $confConfig['exposeGlobals'] ) ) {
-                       $this->exposeGlobals();
-               }
-       }
-
-       /**
-        * Expose all config variables as globals for back-compat. Ewwww.
-        */
-       private function exposeGlobals() {
-               $allVars = $this->defaults + $this->extensionDefaults + $this->values;
-               foreach( $allVars as $name => $value ) {
-                       $var = 'wg' . ucfirst( $name );
-                       $GLOBALS[$var] = $value;
-               }
-       }
-
-       /**
-        * Load customized settings from whatever the data store is
-        */
-       abstract protected function initChangedSettings();
-
-       /**
-        * Apply a setting to the backend store
-        * @param $name String Name of the setting
-        * @param $value mixed Value to store
-        */
-       abstract protected function writeSetting( $name, $value );
-
-       /**
-        * Initialize a new child class based on a configuration array
-        * @param $conf Array of configuration settings, see $wgConfiguration
-        *   for details
-        * @throws MWException
-        * @return Conf
-        */
-       private static function newFromSettings( $conf ) {
-               $class = ucfirst( $conf['type'] ) . 'Conf';
-               if( !class_exists( $class ) ) {
-                       throw new MWException( '$wgConfiguration misconfigured with invalid "type"' );
-               }
-               return new $class( $conf );
-       }
-
-       /**
-        * Get the singleton if we don't want a specific wiki
-        * @param bool|string $wiki An id for a remote wiki
-        * @throws MWException
-        * @return Conf child
-        */
-       public static function load( $wiki = false ) {
-               throw new MWException( "Not working yet, don't attempt to use this" );
-               if( !self::$__instance ) {
-                       /**global $wgConfiguration;
-                       self::$__instance = self::newFromSettings( $wgConfiguration );*/
-               }
-               if( $wiki && $wiki != self::$__instance->getWikiId() ) {
-                       // Load configuration for a different wiki, not sure how
-                       // we're gonna do this yet
-                       return null;
-               }
-               return self::$__instance;
-       }
-
-       /**
-        * Get a property from the configuration database, falling back
-        * to DefaultSettings if undefined
-        * @param $name String Name of setting to retrieve.
-        * @param $wiki String An id for a remote wiki
-        * @return mixed
-        */
-       public static function get( $name, $wiki = false ) {
-               return self::load( $wiki )->retrieveSetting( $name );
-       }
-
-       /**
-        * Actually get the setting, checking overrides, extensions, then core.
-        *
-        * @param $name String Name of setting to get
-        * @return mixed
-        */
-       public function retrieveSetting( $name ) {
-               // isset() is ok here, because the default is to return null anyway.
-               if( isset( $this->values[$name] ) ) {
-                       return $this->values[$name];
-               } elseif( isset( $this->extensionDefaults[$name] ) ) {
-                       return $this->extensionDefaults[$name];
-               } elseif( isset( $this->defaults[$name] ) ) {
-                       return $this->defaults[$name];
-               } else {
-                       wfDebug( __METHOD__ . " called for unknown configuration item '$name'\n" );
-                       return null;
-               }
-       }
-
-       /**
-        * Apply a setting to the configuration object.
-        * @param $name String Name of the config item
-        * @param $value mixed Any value to use for the key
-        * @param $write bool Whether to write to the static copy (db, file, etc)
-        */
-       public function applySetting( $name, $value, $write = false ) {
-               $this->values[$name] = $value;
-               if( $write && ( $value !== $this->getDefaultSetting( $name ) ) ) {
-                       $this->writeSetting( $name, $value );
-               }
-       }
-
-       /**
-        * Get the default for a given setting name. Check core and then extensions.
-        * Will return NO_SUCH_DEFAULT_CONFIG if the config item does not exist.
-        *
-        * @param $name String Name of setting
-        * @return mixed
-        */
-       public function getDefaultSetting( $name ) {
-               // Use array_key_exists() here, to make sure we return a default
-               // that's really set to null.
-               if( array_key_exists( $name, $this->defaults ) ) {
-                       return $this->defaults[$name];
-               } elseif( array_key_exists( $name, $this->extensionDefaults ) ) {
-                       return $this->extensionDefaults[$name];
-               } else {
-                       wfDebug( __METHOD__ . " called for unknown configuration item '$name'\n" );
-                       return self::NO_SUCH_DEFAULT_CONFIG;
-               }
-       }
-
-       /**
-        * What is the wiki ID for this site?
-        * @return String
-        */
-       public function getWikiId() {
-               return $this->wikiId;
-       }
-}
diff --git a/includes/conf/DatabaseConf.php b/includes/conf/DatabaseConf.php
deleted file mode 100644 (file)
index d8f644d..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-/**
- * Database configuration class
- *
- * Copyright © 2011 Chad Horohoe <chadh@wikimedia.org>
- * http://www.mediawiki.org/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup Config
- */
-class DatabaseConf extends Conf {
-       /**
-        * @see Conf::initChangedSettings()
-        */
-       protected function initChangedSettings() {
-               $res = wfGetDB( DB_MASTER )->select( 'config', '*', array(), __METHOD__ );
-               foreach( $res as $row ) {
-                       $this->values[$row->cf_name] = unserialize( $row->cf_value );
-               }
-       }
-
-       /**
-        * @see Conf::writeSetting()
-        *
-        * @param $name
-        * @param $value
-        *
-        * @return bool
-        */
-       protected function writeSetting( $name, $value ) {
-               $dbw = wfGetDB( DB_MASTER );
-               $value = serialize( $value );
-               if( $dbw->selectRow( 'config', 'cf_name', array( 'cf_name' => $name ), __METHOD__ ) ) {
-                       $dbw->update( 'config', array( 'cf_value' => $value ),
-                               array( 'cf_name' => $name ), __METHOD__ );
-               } else {
-                       $dbw->insert( 'config',
-                               array( 'cf_name' => $name, 'cf_value' => $value ), __METHOD__ );
-               }
-               return (bool)$dbw->affectedRows();
-       }
-}
diff --git a/includes/conf/DefaultSettings.php b/includes/conf/DefaultSettings.php
deleted file mode 100644 (file)
index 4601f04..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-/**
- * Utility class for holding all of our default settings.
- *
- * Copyright © 2011 Chad Horohoe <chadh@wikimedia.org>
- * http://www.mediawiki.org/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup Config
- */
-final class DefaultSettings {
-       public $mySetting = 'defaultValue';
-}
index 805ff0f..33bf69c 100644 (file)
@@ -85,9 +85,6 @@ class Ibm_db2Updater extends DatabaseUpdater {
                        array( 'addField', 'revision',      'rev_sha1',         'patch-rev_sha1.sql' ),
                        array( 'addField', 'archive',       'ar_sha1',          'patch-ar_sha1.sql' ),
 
-                       // 1.20
-                       array( 'addTable', 'config',                            'patch-config.sql' ),
-
                        // 1.21
                        array( 'addField',      'revision',     'rev_content_format',           'patch-revision-rev_content_format.sql' ),
                        array( 'addField',      'revision',     'rev_content_model',            'patch-revision-rev_content_model.sql' ),
index 82de913..3f1dad9 100644 (file)
@@ -209,7 +209,6 @@ class MysqlUpdater extends DatabaseUpdater {
                        array( 'modifyField', 'user_former_groups', 'ufg_group', 'patch-ufg_group-length-increase.sql' ),
 
                        // 1.20
-                       array( 'addTable', 'config',                            'patch-config.sql' ),
                        array( 'addIndex', 'revision', 'page_user_timestamp', 'patch-revision-user-page-index.sql' ),
                        array( 'addField', 'ipblocks',      'ipb_parent_block_id',           'patch-ipb-parent-block-id.sql' ),
                        array( 'addIndex', 'ipblocks',      'ipb_parent_block_id',           'patch-ipb-parent-block-id-index.sql' ),
index f946d59..5523470 100644 (file)
@@ -67,7 +67,6 @@ class OracleUpdater extends DatabaseUpdater {
                        array( 'modifyField', 'user_former_groups', 'ufg_group', 'patch-ufg_group-length-increase.sql' ),
 
                        //1.20
-                       array( 'addTable', 'config', 'patch-config.sql' ),
                        array( 'addIndex', 'ipblocks', 'i05', 'patch-ipblocks_i05_index.sql' ),
                        array( 'addIndex', 'revision', 'i05', 'patch-revision_i05_index.sql' ),
                        array( 'dropField', 'category', 'cat_hidden', 'patch-cat_hidden.sql' ),
index 457268c..5a13d42 100644 (file)
@@ -89,7 +89,6 @@ class PostgresUpdater extends DatabaseUpdater {
                        array( 'addTable', 'module_deps',       'patch-module_deps.sql' ),
                        array( 'addTable', 'uploadstash',       'patch-uploadstash.sql' ),
                        array( 'addTable', 'user_former_groups','patch-user_former_groups.sql' ),
-                       array( 'addTable', 'config',            'patch-config.sql' ),
                        array( 'addTable', 'external_user',     'patch-external_user.sql' ),
 
                        # Needed before new field
index c3f7a81..2fa3f31 100644 (file)
@@ -88,7 +88,6 @@ class SqliteUpdater extends DatabaseUpdater {
                        array( 'modifyField', 'user_former_groups', 'ufg_group', 'patch-ug_group-length-increase.sql' ),
 
                        // 1.20
-                       array( 'addTable', 'config',                            'patch-config.sql' ),
                        array( 'addIndex', 'revision', 'page_user_timestamp', 'patch-revision-user-page-index.sql' ),
                        array( 'addField', 'ipblocks', 'ipb_parent_block_id', 'patch-ipb-parent-block-id.sql' ),
                        array( 'addIndex', 'ipblocks', 'ipb_parent_block_id', 'patch-ipb-parent-block-id-index.sql' ),
diff --git a/maintenance/archives/patch-config.sql b/maintenance/archives/patch-config.sql
deleted file mode 100644 (file)
index 791015e..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
--- Table for holding configuration changes
-CREATE TABLE /*_*/config (
-  -- Config var name
-  cf_name varbinary(255) NOT NULL PRIMARY KEY,
-  -- Config var value
-  cf_value blob NOT NULL
-) /*$wgDBTableOptions*/;
--- Should cover *most* configuration - strings, ints, bools, etc.
-CREATE INDEX /*i*/cf_name_value ON /*_*/config (cf_name,cf_value(255));
index 6fd7a83..2edb7f0 100644 (file)
@@ -927,13 +927,3 @@ CREATE TABLE user_former_groups (
 );
 CREATE UNIQUE INDEX ufg_user_group
   ON user_former_groups (ufg_user, ufg_group);
-
-
-
--- Table for holding configuration changes
-CREATE TABLE config (
-  cf_name   VARCHAR(255) NOT NULL
-    PRIMARY KEY,
-  cf_value  CLOB(64K) INLINE LENGTH 4096 NOT NULL
-);
-
diff --git a/maintenance/oracle/archives/patch-config.sql b/maintenance/oracle/archives/patch-config.sql
deleted file mode 100644 (file)
index 66714a7..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-define mw_prefix='{$wgDBprefix}';
-
-CREATE TABLE &mw_prefix.config (
-  cf_name VARCHAR2(255) NOT NULL,
-  cf_value blob NOT NULL
-);
-ALTER TABLE &mw_prefix.config ADD CONSTRAINT &mw_prefix.config_pk PRIMARY KEY (cf_name);
-
index d0712e3..f28c61f 100644 (file)
@@ -670,13 +670,6 @@ CREATE TABLE &mw_prefix.module_deps (
 );
 CREATE UNIQUE INDEX &mw_prefix.module_deps_u01 ON &mw_prefix.module_deps (md_module, md_skin);
 
-CREATE TABLE &mw_prefix.config (
-  cf_name VARCHAR2(255) NOT NULL,
-  cf_value blob NOT NULL
-);
-ALTER TABLE &mw_prefix.config ADD CONSTRAINT &mw_prefix.config_pk PRIMARY KEY (cf_name);
--- leaving index out for now ...
-
 -- do not prefix this table as it breaks parserTests
 CREATE TABLE wiki_field_info_full (
 table_name VARCHAR2(35) NOT NULL,
diff --git a/maintenance/postgres/archives/patch-config.sql b/maintenance/postgres/archives/patch-config.sql
deleted file mode 100644 (file)
index 2f39ff0..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-CREATE TABLE config (
-  cf_name   TEXT  NOT NULL  PRIMARY KEY,
-  cf_value  TEXT  NOT NULL
-);
-CREATE INDEX cf_name_value ON config (cf_name, cf_value);
\ No newline at end of file
index 27759d5..845193d 100644 (file)
@@ -697,9 +697,3 @@ CREATE TABLE module_deps (
   md_deps    TEXT  NOT NULL
 );
 CREATE UNIQUE INDEX md_module_skin ON module_deps (md_module, md_skin);
-
-CREATE TABLE config (
-  cf_name   TEXT  NOT NULL  PRIMARY KEY,
-  cf_value  TEXT  NOT NULL
-);
-CREATE INDEX cf_name_value ON config (cf_name, cf_value);
index a4cdefd..bdcd66e 100644 (file)
@@ -1508,16 +1508,6 @@ CREATE TABLE /*_*/module_deps (
 ) /*$wgDBTableOptions*/;
 CREATE UNIQUE INDEX /*i*/md_module_skin ON /*_*/module_deps (md_module, md_skin);
 
--- Table for holding configuration changes
-CREATE TABLE /*_*/config (
-  -- Config var name
-  cf_name varbinary(255) NOT NULL PRIMARY KEY,
-  -- Config var value
-  cf_value blob NOT NULL
-) /*$wgDBTableOptions*/;
--- Should cover *most* configuration - strings, ints, bools, etc.
-CREATE INDEX /*i*/cf_name_value ON /*_*/config (cf_name,cf_value(255));
-
 -- Holds all the sites known to the wiki.
 CREATE TABLE /*_*/sites (
 -- Numeric id of the site