Aaron Schulz has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/336371 )

Change subject: Move IDatabase/IMaintainableDatabase to Rdbms namespace
......................................................................

Move IDatabase/IMaintainableDatabase to Rdbms namespace

Added compat.php file with aliases for the old global interfaces.
Database is marked as implementing both, so that both global and
namespaced type hints of IDatabase work. The former can be removed
once all type-hints have been migrated.

Change-Id: If7e8a8ff574661fd827de8bcec11d2c39a687300
---
M autoload.php
M includes/libs/rdbms/connectionmanager/ConnectionManager.php
M includes/libs/rdbms/database/DBConnRef.php
M includes/libs/rdbms/database/Database.php
M includes/libs/rdbms/database/IDatabase.php
M includes/libs/rdbms/database/IMaintainableDatabase.php
M includes/libs/rdbms/database/MaintainableDBConnRef.php
A includes/libs/rdbms/database/compat.php
M includes/libs/rdbms/database/resultwrapper/ResultWrapper.php
M includes/libs/rdbms/defines.php
M includes/libs/rdbms/exception/DBConnectionError.php
M includes/libs/rdbms/exception/DBError.php
M includes/libs/rdbms/exception/DBExpectedError.php
M includes/libs/rdbms/exception/DBQueryError.php
M includes/libs/rdbms/lbfactory/LBFactory.php
M includes/libs/rdbms/lbfactory/LBFactoryMulti.php
M includes/libs/rdbms/lbfactory/LBFactorySingle.php
M includes/libs/rdbms/loadbalancer/ILoadBalancer.php
M includes/libs/rdbms/loadbalancer/LoadBalancer.php
M includes/libs/rdbms/loadbalancer/LoadBalancerSingle.php
M includes/libs/rdbms/loadmonitor/LoadMonitor.php
M includes/libs/rdbms/loadmonitor/LoadMonitorMySQL.php
22 files changed, 63 insertions(+), 12 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/71/336371/1

diff --git a/autoload.php b/autoload.php
index 970dff0..e919381 100644
--- a/autoload.php
+++ b/autoload.php
@@ -592,14 +592,14 @@
        'ICacheHelper' => __DIR__ . '/includes/cache/CacheHelper.php',
        'IContextSource' => __DIR__ . '/includes/context/IContextSource.php',
        'IDBAccessObject' => __DIR__ . '/includes/dao/IDBAccessObject.php',
-       'IDatabase' => __DIR__ . '/includes/libs/rdbms/database/IDatabase.php',
+       'IDatabase' => __DIR__ . '/includes/libs/rdbms/database/compat.php',
        'IEContentAnalyzer' => __DIR__ . 
'/includes/libs/mime/IEContentAnalyzer.php',
        'IEUrlExtension' => __DIR__ . '/includes/libs/IEUrlExtension.php',
        'IExpiringStore' => __DIR__ . 
'/includes/libs/objectcache/IExpiringStore.php',
        'IJobSpecification' => __DIR__ . 
'/includes/jobqueue/JobSpecification.php',
        'ILoadBalancer' => __DIR__ . 
'/includes/libs/rdbms/loadbalancer/ILoadBalancer.php',
        'ILocalizedException' => __DIR__ . 
'/includes/exception/LocalizedException.php',
-       'IMaintainableDatabase' => __DIR__ . 
'/includes/libs/rdbms/database/IMaintainableDatabase.php',
+       'IMaintainableDatabase' => __DIR__ . 
'/includes/libs/rdbms/database/compat.php',
        'IP' => __DIR__ . '/includes/libs/IP.php',
        'IPSet' => __DIR__ . '/includes/compat/IPSetCompat.php',
        'IPTC' => __DIR__ . '/includes/media/IPTC.php',
@@ -1587,8 +1587,10 @@
        'WikiTextStructure' => __DIR__ . 
'/includes/content/WikiTextStructure.php',
        'Wikimedia\\Rdbms\\ChronologyProtector' => __DIR__ . 
'/includes/libs/rdbms/ChronologyProtector.php',
        'Wikimedia\\Rdbms\\ConnectionManager' => __DIR__ . 
'/includes/libs/rdbms/connectionmanager/ConnectionManager.php',
+       'Wikimedia\\Rdbms\\IDatabase' => __DIR__ . 
'/includes/libs/rdbms/database/IDatabase.php',
        'Wikimedia\\Rdbms\\ILBFactory' => __DIR__ . 
'/includes/libs/rdbms/lbfactory/ILBFactory.php',
        'Wikimedia\\Rdbms\\ILoadMonitor' => __DIR__ . 
'/includes/libs/rdbms/loadmonitor/ILoadMonitor.php',
+       'Wikimedia\\Rdbms\\IMaintainableDatabase' => __DIR__ . 
'/includes/libs/rdbms/database/IMaintainableDatabase.php',
        'Wikimedia\\Rdbms\\LBFactory' => __DIR__ . 
'/includes/libs/rdbms/lbfactory/LBFactory.php',
        'Wikimedia\\Rdbms\\LBFactoryMulti' => __DIR__ . 
'/includes/libs/rdbms/lbfactory/LBFactoryMulti.php',
        'Wikimedia\\Rdbms\\LBFactorySimple' => __DIR__ . 
'/includes/libs/rdbms/lbfactory/LBFactorySimple.php',
diff --git a/includes/libs/rdbms/connectionmanager/ConnectionManager.php 
b/includes/libs/rdbms/connectionmanager/ConnectionManager.php
index 4f72f77..1e65934 100644
--- a/includes/libs/rdbms/connectionmanager/ConnectionManager.php
+++ b/includes/libs/rdbms/connectionmanager/ConnectionManager.php
@@ -4,7 +4,6 @@
 
 use Database;
 use DBConnRef;
-use IDatabase;
 use InvalidArgumentException;
 use LoadBalancer;
 
diff --git a/includes/libs/rdbms/database/DBConnRef.php 
b/includes/libs/rdbms/database/DBConnRef.php
index b268b9f..550055d 100644
--- a/includes/libs/rdbms/database/DBConnRef.php
+++ b/includes/libs/rdbms/database/DBConnRef.php
@@ -1,4 +1,7 @@
 <?php
+
+use Wikimedia\Rdbms\IDatabase;
+
 /**
  * Helper class to handle automatically marking connections as reusable (via 
RAII pattern)
  * as well handling deferring the actual network connection until the handle 
is used
diff --git a/includes/libs/rdbms/database/Database.php 
b/includes/libs/rdbms/database/Database.php
index d15d6f1..c815ce3 100644
--- a/includes/libs/rdbms/database/Database.php
+++ b/includes/libs/rdbms/database/Database.php
@@ -27,6 +27,8 @@
 use Psr\Log\LoggerInterface;
 use Wikimedia\ScopedCallback;
 use Wikimedia\Rdbms\TransactionProfiler;
+use Wikimedia\Rdbms\IDatabase;
+use Wikimedia\Rdbms\IMaintainableDatabase;
 
 /**
  * Relational database abstraction object
@@ -34,7 +36,11 @@
  * @ingroup Database
  * @since 1.28
  */
-abstract class Database implements IDatabase, IMaintainableDatabase, 
LoggerAwareInterface {
+abstract class Database
+       implements IDatabase, IMaintainableDatabase, LoggerAwareInterface,
+       // Implement compat.php interfaces until that is removed
+       \IDatabase, \IMaintainableDatabase
+{
        /** Number of times to re-try an operation in case of deadlock */
        const DEADLOCK_TRIES = 4;
        /** Minimum time to wait before retry, in microseconds */
@@ -360,7 +366,7 @@
                }
 
                $class = 'Database' . ucfirst( $driver );
-               if ( class_exists( $class ) && is_subclass_of( $class, 
'IDatabase' ) ) {
+               if ( class_exists( $class ) && is_subclass_of( $class, 
IDatabase::class ) ) {
                        // Resolve some defaults for b/c
                        $p['host'] = isset( $p['host'] ) ? $p['host'] : false;
                        $p['user'] = isset( $p['user'] ) ? $p['user'] : false;
diff --git a/includes/libs/rdbms/database/IDatabase.php 
b/includes/libs/rdbms/database/IDatabase.php
index c6055db..893cacd 100644
--- a/includes/libs/rdbms/database/IDatabase.php
+++ b/includes/libs/rdbms/database/IDatabase.php
@@ -23,7 +23,22 @@
  * @file
  * @ingroup Database
  */
+namespace Wikimedia\Rdbms;
+
 use Wikimedia\ScopedCallback;
+use DBError;
+use DBConnectionError;
+use DBUnexpectedError;
+use DBQueryError;
+use Exception;
+use RuntimeException;
+use UnexpectedValueException;
+use ResultWrapper;
+use Field;
+use LikeMatch;
+use Blob;
+use DBMasterPos;
+use stdClass;
 
 /**
  * Basic database interface for live and lazy-loaded relation database handles
diff --git a/includes/libs/rdbms/database/IMaintainableDatabase.php 
b/includes/libs/rdbms/database/IMaintainableDatabase.php
index 43cec28..1ac652a 100644
--- a/includes/libs/rdbms/database/IMaintainableDatabase.php
+++ b/includes/libs/rdbms/database/IMaintainableDatabase.php
@@ -22,6 +22,12 @@
  * @file
  * @ingroup Database
  */
+namespace Wikimedia\Rdbms;
+
+use ResultWrapper;
+use Exception;
+use RuntimeException;
+use DBUnexpectedError;
 
 /**
  * Advanced database interface for IDatabase handles that include maintenance 
methods
diff --git a/includes/libs/rdbms/database/MaintainableDBConnRef.php 
b/includes/libs/rdbms/database/MaintainableDBConnRef.php
index fa3ddf9..b5ff575 100644
--- a/includes/libs/rdbms/database/MaintainableDBConnRef.php
+++ b/includes/libs/rdbms/database/MaintainableDBConnRef.php
@@ -1,4 +1,7 @@
 <?php
+
+use Wikimedia\Rdbms\IMaintainableDatabase;
+
 /**
  * Helper class to handle automatically marking connections as reusable (via 
RAII pattern)
  * as well handling deferring the actual network connection until the handle 
is used
diff --git a/includes/libs/rdbms/database/compat.php 
b/includes/libs/rdbms/database/compat.php
new file mode 100644
index 0000000..13ec898
--- /dev/null
+++ b/includes/libs/rdbms/database/compat.php
@@ -0,0 +1,9 @@
+<?php
+
+interface IDatabase extends Wikimedia\Rdbms\IDatabase {
+       // Temporary global IDatabase alias which all Database objects also 
implement
+}
+
+interface IMaintainableDatabase extends Wikimedia\Rdbms\IMaintainableDatabase {
+       // Temporary global IDatabase alias which all Database objects also 
implement
+}
diff --git a/includes/libs/rdbms/database/resultwrapper/ResultWrapper.php 
b/includes/libs/rdbms/database/resultwrapper/ResultWrapper.php
index 53109c8..da1ab01 100644
--- a/includes/libs/rdbms/database/resultwrapper/ResultWrapper.php
+++ b/includes/libs/rdbms/database/resultwrapper/ResultWrapper.php
@@ -1,4 +1,7 @@
 <?php
+
+use Wikimedia\Rdbms\IDatabase;
+
 /**
  * Result wrapper for grabbing data queried from an IDatabase object
  *
diff --git a/includes/libs/rdbms/defines.php b/includes/libs/rdbms/defines.php
index 692a704b..287ad1e 100644
--- a/includes/libs/rdbms/defines.php
+++ b/includes/libs/rdbms/defines.php
@@ -1,5 +1,7 @@
 <?php
 
+use Wikimedia\Rdbms\IDatabase;
+
 /**@{
  * Database related constants
  */
diff --git a/includes/libs/rdbms/exception/DBConnectionError.php 
b/includes/libs/rdbms/exception/DBConnectionError.php
index 47f8c96..dca1302 100644
--- a/includes/libs/rdbms/exception/DBConnectionError.php
+++ b/includes/libs/rdbms/exception/DBConnectionError.php
@@ -18,6 +18,7 @@
  * @file
  * @ingroup Database
  */
+use Wikimedia\Rdbms\IDatabase;
 
 /**
  * @ingroup Database
diff --git a/includes/libs/rdbms/exception/DBError.php 
b/includes/libs/rdbms/exception/DBError.php
index 526596d..226c675 100644
--- a/includes/libs/rdbms/exception/DBError.php
+++ b/includes/libs/rdbms/exception/DBError.php
@@ -18,6 +18,7 @@
  * @file
  * @ingroup Database
  */
+use Wikimedia\Rdbms\IDatabase;
 
 /**
  * Database error base class
diff --git a/includes/libs/rdbms/exception/DBExpectedError.php 
b/includes/libs/rdbms/exception/DBExpectedError.php
index 7d303b1..57538a8 100644
--- a/includes/libs/rdbms/exception/DBExpectedError.php
+++ b/includes/libs/rdbms/exception/DBExpectedError.php
@@ -18,6 +18,7 @@
  * @file
  * @ingroup Database
  */
+use Wikimedia\Rdbms\IDatabase;
 
 /**
  * Base class for the more common types of database errors. These are known to 
occur
diff --git a/includes/libs/rdbms/exception/DBQueryError.php 
b/includes/libs/rdbms/exception/DBQueryError.php
index 002d253..b4c3d52 100644
--- a/includes/libs/rdbms/exception/DBQueryError.php
+++ b/includes/libs/rdbms/exception/DBQueryError.php
@@ -18,6 +18,7 @@
  * @file
  * @ingroup Database
  */
+use Wikimedia\Rdbms\IDatabase;
 
 /**
  * @ingroup Database
diff --git a/includes/libs/rdbms/lbfactory/LBFactory.php 
b/includes/libs/rdbms/lbfactory/LBFactory.php
index 7a2ad3f..d64d6ef 100644
--- a/includes/libs/rdbms/lbfactory/LBFactory.php
+++ b/includes/libs/rdbms/lbfactory/LBFactory.php
@@ -32,7 +32,6 @@
 use Exception;
 use RuntimeException;
 use ILoadBalancer;
-use IDatabase;
 use LoadBalancer;
 use DBTransactionError;
 use DBReplicationWaitError;
diff --git a/includes/libs/rdbms/lbfactory/LBFactoryMulti.php 
b/includes/libs/rdbms/lbfactory/LBFactoryMulti.php
index 643b110..094b821 100644
--- a/includes/libs/rdbms/lbfactory/LBFactoryMulti.php
+++ b/includes/libs/rdbms/lbfactory/LBFactoryMulti.php
@@ -24,7 +24,6 @@
 namespace Wikimedia\Rdbms;
 
 use LoadBalancer;
-use IDatabase;
 use DatabaseDomain;
 use InvalidArgumentException;
 
diff --git a/includes/libs/rdbms/lbfactory/LBFactorySingle.php 
b/includes/libs/rdbms/lbfactory/LBFactorySingle.php
index f992643..b9a90e8 100644
--- a/includes/libs/rdbms/lbfactory/LBFactorySingle.php
+++ b/includes/libs/rdbms/lbfactory/LBFactorySingle.php
@@ -24,7 +24,6 @@
 namespace Wikimedia\Rdbms;
 
 use LoadBalancerSingle;
-use IDatabase;
 use InvalidArgumentException;
 use BadMethodCallException;
 
diff --git a/includes/libs/rdbms/loadbalancer/ILoadBalancer.php 
b/includes/libs/rdbms/loadbalancer/ILoadBalancer.php
index fc306b4..af1e3d7 100644
--- a/includes/libs/rdbms/loadbalancer/ILoadBalancer.php
+++ b/includes/libs/rdbms/loadbalancer/ILoadBalancer.php
@@ -21,6 +21,7 @@
  * @ingroup Database
  * @author Aaron Schulz
  */
+use Wikimedia\Rdbms\IDatabase;
 
 /**
  * Database cluster connection, tracking, load balancing, and transaction 
manager interface
@@ -447,7 +448,7 @@
        /**
         * @note This method may trigger a DB connection if not yet done
         * @param string|bool $domain Domain ID, or false for the current domain
-        * @param IDatabase|null DB master connection; used to avoid loops 
[optional]
+        * @param IDatabase|null $conn DB master connection; used to avoid 
loops [optional]
         * @return string|bool Reason the master is read-only or false if it is 
not
         */
        public function getReadOnlyReason( $domain = false, IDatabase $conn = 
null );
diff --git a/includes/libs/rdbms/loadbalancer/LoadBalancer.php 
b/includes/libs/rdbms/loadbalancer/LoadBalancer.php
index baac3d0..52d93bf 100644
--- a/includes/libs/rdbms/loadbalancer/LoadBalancer.php
+++ b/includes/libs/rdbms/loadbalancer/LoadBalancer.php
@@ -25,6 +25,7 @@
 use Wikimedia\ScopedCallback;
 use Wikimedia\Rdbms\TransactionProfiler;
 use Wikimedia\Rdbms\ILoadMonitor;
+use Wikimedia\Rdbms\IDatabase;
 
 /**
  * Database connection, tracking, load balancing, and transaction manager for 
a cluster
@@ -1349,7 +1350,7 @@
 
        /**
         * @param string $domain Domain ID, or false for the current domain
-        * @param IDatabase|null DB master connectionl used to avoid loops 
[optional]
+        * @param IDatabase|null $conn DB master connectionl used to avoid 
loops [optional]
         * @return bool
         */
        private function masterRunningReadOnly( $domain, IDatabase $conn = null 
) {
diff --git a/includes/libs/rdbms/loadbalancer/LoadBalancerSingle.php 
b/includes/libs/rdbms/loadbalancer/LoadBalancerSingle.php
index 0a05202..7b7b003 100644
--- a/includes/libs/rdbms/loadbalancer/LoadBalancerSingle.php
+++ b/includes/libs/rdbms/loadbalancer/LoadBalancerSingle.php
@@ -21,6 +21,8 @@
  * @ingroup Database
  */
 
+use Wikimedia\Rdbms\IDatabase;
+
 /**
  * Trivial LoadBalancer that always returns an injected connection handle
  */
diff --git a/includes/libs/rdbms/loadmonitor/LoadMonitor.php 
b/includes/libs/rdbms/loadmonitor/LoadMonitor.php
index f1a6d07..2160faa 100644
--- a/includes/libs/rdbms/loadmonitor/LoadMonitor.php
+++ b/includes/libs/rdbms/loadmonitor/LoadMonitor.php
@@ -25,7 +25,6 @@
 use Psr\Log\NullLogger;
 use Wikimedia\ScopedCallback;
 use ILoadBalancer;
-use IDatabase;
 use BagOStuff;
 
 /**
diff --git a/includes/libs/rdbms/loadmonitor/LoadMonitorMySQL.php 
b/includes/libs/rdbms/loadmonitor/LoadMonitorMySQL.php
index afb3a23..3e8b943 100644
--- a/includes/libs/rdbms/loadmonitor/LoadMonitorMySQL.php
+++ b/includes/libs/rdbms/loadmonitor/LoadMonitorMySQL.php
@@ -22,7 +22,6 @@
 namespace Wikimedia\Rdbms;
 
 use ILoadBalancer;
-use IDatabase;
 use BagOStuff;
 
 /**

-- 
To view, visit https://gerrit.wikimedia.org/r/336371
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: If7e8a8ff574661fd827de8bcec11d2c39a687300
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Aaron Schulz <asch...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to