aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--RELEASE-NOTES-1.4315
-rw-r--r--autoload.php14
-rw-r--r--docs/config-schema.yaml20
-rw-r--r--includes/Html/TemplateParser.php2
-rw-r--r--includes/MainConfigSchema.php18
-rw-r--r--includes/MediaWikiServices.php2
-rw-r--r--includes/Output/NoLocalSettings.php1
-rw-r--r--includes/ResourceLoader/ResourceLoader.php4
-rw-r--r--includes/ResourceLoader/dependencystore/KeyValueDependencyStore.php2
-rw-r--r--includes/Rest/Router.php2
-rw-r--r--includes/Revision/RevisionStore.php2
-rw-r--r--includes/Revision/RevisionStoreFactory.php2
-rw-r--r--includes/ServiceWiring.php3
-rw-r--r--includes/Settings/Cache/CachedSource.php2
-rw-r--r--includes/Settings/SettingsBuilder.php2
-rw-r--r--includes/Storage/EditResultCache.php2
-rw-r--r--includes/Storage/PageEditStash.php2
-rw-r--r--includes/auth/ThrottlePreAuthenticationProvider.php2
-rw-r--r--includes/auth/Throttler.php2
-rw-r--r--includes/cache/FileCacheBase.php2
-rw-r--r--includes/config-schema.php14
-rw-r--r--includes/config/EtcdConfig.php4
-rw-r--r--includes/db/MWLBFactory.php1
-rw-r--r--includes/edit/SimpleParsoidOutputStash.php2
-rw-r--r--includes/filebackend/FileBackendGroup.php2
-rw-r--r--includes/installer/Installer.php2
-rw-r--r--includes/installer/Pingback.php2
-rw-r--r--includes/jobqueue/JobQueueMemory.php2
-rw-r--r--includes/language/LanguageConverter.php1
-rw-r--r--includes/language/LanguageNameUtils.php4
-rw-r--r--includes/language/MessageCache.php2
-rw-r--r--includes/language/dependency/DependencyWrapper.php2
-rw-r--r--includes/libs/CryptHKDF.php3
-rw-r--r--includes/libs/WRStats/BagOStuffStatsStore.php2
-rw-r--r--includes/libs/filebackend/FileBackendStore.php2
-rw-r--r--includes/libs/filebackend/SwiftFileBackend.php2
-rw-r--r--includes/libs/lockmanager/MemcLockManager.php3
-rw-r--r--includes/libs/objectcache/APCUBagOStuff.php5
-rw-r--r--includes/libs/objectcache/BagOStuff.php49
-rw-r--r--includes/libs/objectcache/CachedBagOStuff.php6
-rw-r--r--includes/libs/objectcache/EmptyBagOStuff.php5
-rw-r--r--includes/libs/objectcache/HashBagOStuff.php13
-rw-r--r--includes/libs/objectcache/IStoreKeyEncoder.php9
-rw-r--r--includes/libs/objectcache/MediumSpecificBagOStuff.php69
-rw-r--r--includes/libs/objectcache/MemcachedBagOStuff.php17
-rw-r--r--includes/libs/objectcache/MemcachedPeclBagOStuff.php17
-rw-r--r--includes/libs/objectcache/MemcachedPhpBagOStuff.php14
-rw-r--r--includes/libs/objectcache/MultiWriteBagOStuff.php11
-rw-r--r--includes/libs/objectcache/RESTBagOStuff.php13
-rw-r--r--includes/libs/objectcache/RedisBagOStuff.php18
-rw-r--r--includes/libs/objectcache/ReplicatedBagOStuff.php2
-rw-r--r--includes/libs/objectcache/WinCacheBagOStuff.php5
-rw-r--r--includes/libs/objectcache/wancache/WANObjectCache.php3
-rw-r--r--includes/libs/rdbms/ChronologyProtector.php4
-rw-r--r--includes/libs/rdbms/database/DatabaseFactory.php2
-rw-r--r--includes/libs/rdbms/database/replication/ReplicationReporter.php2
-rw-r--r--includes/libs/rdbms/lbfactory/LBFactory.php4
-rw-r--r--includes/libs/rdbms/loadbalancer/LoadBalancer.php4
-rw-r--r--includes/libs/rdbms/loadmonitor/ILoadMonitor.php2
-rw-r--r--includes/libs/rdbms/loadmonitor/LoadMonitor.php4
-rw-r--r--includes/linker/LinkTargetStore.php2
-rw-r--r--includes/objectcache/ObjectCache.php1
-rw-r--r--includes/objectcache/ObjectCacheFactory.php8
-rw-r--r--includes/objectcache/SqlBagOStuff.php1
-rw-r--r--includes/page/DeletePage.php2
-rw-r--r--includes/page/File/BadFileLookup.php2
-rw-r--r--includes/page/PageCommandFactory.php2
-rw-r--r--includes/parser/ParserCache.php3
-rw-r--r--includes/parser/ParserCacheFactory.php2
-rw-r--r--includes/registration/ExtensionRegistry.php1
-rw-r--r--includes/registration/MissingExtensionException.php1
-rw-r--r--includes/session/PHPSessionHandler.php2
-rw-r--r--includes/session/SessionBackend.php2
-rw-r--r--includes/session/SessionManager.php4
-rw-r--r--includes/site/CachingSiteStore.php2
-rw-r--r--includes/upload/UploadBase.php1
-rw-r--r--includes/utils/FileContentsHasher.php5
-rw-r--r--includes/watchlist/WatchedItemStore.php4
-rw-r--r--maintenance/benchmarks/benchmarkLruHash.php2
-rw-r--r--maintenance/mctest.php1
-rw-r--r--tests/phpunit/MediaWikiIntegrationTestCase.php2
-rw-r--r--tests/phpunit/includes/ResourceLoader/MessageBlobStoreTest.php2
-rw-r--r--tests/phpunit/includes/Revision/RevisionStoreDbTest.php2
-rw-r--r--tests/phpunit/includes/SiteStats/SiteStatsTest.php1
-rw-r--r--tests/phpunit/includes/Storage/DerivedPageDataUpdaterTest.php2
-rw-r--r--tests/phpunit/includes/Storage/NameTableStoreTest.php6
-rw-r--r--tests/phpunit/includes/Storage/SqlBlobStoreTest.php2
-rw-r--r--tests/phpunit/includes/api/ApiStashEditTest.php2
-rw-r--r--tests/phpunit/includes/auth/AuthManagerTest.php2
-rw-r--r--tests/phpunit/includes/auth/ThrottlePreAuthenticationProviderTest.php2
-rw-r--r--tests/phpunit/includes/auth/ThrottlerTest.php4
-rw-r--r--tests/phpunit/includes/cache/LinkCacheTest.php2
-rw-r--r--tests/phpunit/includes/db/DatabaseTestHelper.php1
-rw-r--r--tests/phpunit/includes/db/LBFactoryTest.php1
-rw-r--r--tests/phpunit/includes/filebackend/FileBackendGroupIntegrationTest.php1
-rw-r--r--tests/phpunit/includes/filerepo/LocalRepoTest.php2
-rw-r--r--tests/phpunit/includes/filerepo/file/LocalFileTest.php1
-rw-r--r--tests/phpunit/includes/jobqueue/JobQueueTest.php1
-rw-r--r--tests/phpunit/includes/libs/objectcache/APCUBagOStuffTest.php4
-rw-r--r--tests/phpunit/includes/libs/objectcache/BagOStuffTestBase.php7
-rw-r--r--tests/phpunit/includes/libs/objectcache/HashBagOStuffIntegrationTest.php4
-rw-r--r--tests/phpunit/includes/libs/objectcache/MemcachedPeclBagOStuffIntegrationTest.php2
-rw-r--r--tests/phpunit/includes/libs/objectcache/MemcachedPhpBagOStuffIntegrationTest.php2
-rw-r--r--tests/phpunit/includes/libs/objectcache/MultiWriteBagOStuffTest.php4
-rw-r--r--tests/phpunit/includes/libs/objectcache/RESTBagOStuffIntegrationTest.php4
-rw-r--r--tests/phpunit/includes/libs/objectcache/RedisBagOStuffIntegrationTest.php4
-rw-r--r--tests/phpunit/includes/libs/objectcache/WinCacheBagOStuffIntegrationTest.php2
-rw-r--r--tests/phpunit/includes/objectcache/ObjectCacheTest.php2
-rw-r--r--tests/phpunit/includes/page/ParserOutputAccessTest.php2
-rw-r--r--tests/phpunit/includes/parser/ParserCacheTest.php6
-rw-r--r--tests/phpunit/includes/parser/PreprocessorTest.php2
-rw-r--r--tests/phpunit/includes/parser/RevisionOutputCacheTest.php4
-rw-r--r--tests/phpunit/includes/poolcounter/PoolWorkArticleViewCurrentTest.php1
-rw-r--r--tests/phpunit/includes/poolcounter/PoolWorkArticleViewOldTest.php2
-rw-r--r--tests/phpunit/includes/registration/ExtensionRegistrationTest.php2
-rw-r--r--tests/phpunit/includes/session/SessionBackendTest.php2
-rw-r--r--tests/phpunit/includes/session/TestBagOStuff.php4
-rw-r--r--tests/phpunit/includes/user/BotPasswordTest.php1
-rw-r--r--tests/phpunit/integration/includes/Html/TemplateParserIntegrationTest.php2
-rw-r--r--tests/phpunit/integration/includes/Permissions/RateLimiterTest.php2
-rw-r--r--tests/phpunit/integration/includes/Rest/Handler/HTMLHandlerTestTrait.php2
-rw-r--r--tests/phpunit/integration/includes/Rest/Handler/Helper/HtmlOutputRendererHelperTest.php4
-rw-r--r--tests/phpunit/integration/includes/Rest/Handler/PageHTMLHandlerTest.php2
-rw-r--r--tests/phpunit/integration/includes/Rest/Handler/PageRedirectHandlerTest.php2
-rw-r--r--tests/phpunit/integration/includes/Rest/Handler/ParsoidOutputAccessTest.php2
-rw-r--r--tests/phpunit/integration/includes/Rest/Handler/RevisionHTMLHandlerTest.php2
-rw-r--r--tests/phpunit/integration/includes/Rest/Handler/RevisionSourceHandlerTest.php2
-rw-r--r--tests/phpunit/integration/includes/db/DatabaseSqliteTest.php1
-rw-r--r--tests/phpunit/integration/includes/db/DatabaseSqliteUpgradeTest.php1
-rw-r--r--tests/phpunit/integration/includes/filerepo/LocalAndForeignDBRepoTest.php1
-rw-r--r--tests/phpunit/mocks/MockDatabase.php2
-rw-r--r--tests/phpunit/structure/BundleSizeTestBase.php2
-rw-r--r--tests/phpunit/structure/RestStructureTest.php1
-rw-r--r--tests/phpunit/tests/MediaWikiIntegrationTestCaseTest.php2
-rw-r--r--tests/phpunit/unit/includes/Rest/RestTestTrait.php2
-rw-r--r--tests/phpunit/unit/includes/Rest/RouterTest.php2
-rw-r--r--tests/phpunit/unit/includes/Revision/RevisionStoreFactoryTest.php2
-rw-r--r--tests/phpunit/unit/includes/Settings/Cache/CachedSourceTest.php2
-rw-r--r--tests/phpunit/unit/includes/Settings/SettingsBuilderTest.php2
-rw-r--r--tests/phpunit/unit/includes/Storage/EditResultCacheTest.php2
-rw-r--r--tests/phpunit/unit/includes/StubObject/DeprecatedGlobalTest.php1
-rw-r--r--tests/phpunit/unit/includes/cache/BacklinkCacheFactoryTest.php1
-rw-r--r--tests/phpunit/unit/includes/config/EtcdConfigTest.php1
-rw-r--r--tests/phpunit/unit/includes/db/MWLBFactoryTest.php1
-rw-r--r--tests/phpunit/unit/includes/edit/SimpleParsoidOutputStashTest.php2
-rw-r--r--tests/phpunit/unit/includes/filebackend/FileBackendGroupTest.php2
-rw-r--r--tests/phpunit/unit/includes/filebackend/FileBackendGroupTestTrait.php2
-rw-r--r--tests/phpunit/unit/includes/installer/PingbackTest.php2
-rw-r--r--tests/phpunit/unit/includes/libs/WRStats/BagOStuffStatsStoreTest.php2
-rw-r--r--tests/phpunit/unit/includes/libs/objectcache/CachedBagOStuffTest.php6
-rw-r--r--tests/phpunit/unit/includes/libs/objectcache/HashBagOStuffTest.php10
-rw-r--r--tests/phpunit/unit/includes/libs/objectcache/ReplicatedBagOStuffTest.php2
-rw-r--r--tests/phpunit/unit/includes/libs/objectcache/WANObjectCacheTest.php6
-rw-r--r--tests/phpunit/unit/includes/libs/rdbms/ChronologyProtectorTest.php1
-rw-r--r--tests/phpunit/unit/includes/libs/rdbms/LoadMonitorTest.php1
-rw-r--r--tests/phpunit/unit/includes/libs/rdbms/database/DatabaseTest.php2
-rw-r--r--tests/phpunit/unit/includes/objectcache/MemcachedBagOStuffTest.php6
-rw-r--r--tests/phpunit/unit/includes/objectcache/ObjectCacheFactoryTest.php1
-rw-r--r--tests/phpunit/unit/includes/objectcache/RESTBagOStuffTest.php4
-rw-r--r--tests/phpunit/unit/includes/objectcache/RedisBagOStuffTest.php3
-rw-r--r--tests/phpunit/unit/includes/page/DeletePageTest.php2
-rw-r--r--tests/phpunit/unit/includes/page/File/BadFileLookupTest.php1
-rw-r--r--tests/phpunit/unit/includes/parser/ParserCacheFactoryTest.php2
-rw-r--r--tests/phpunit/unit/includes/watchlist/WatchedItemStoreUnitTest.php1
-rw-r--r--tests/phpunit/unit/tests/MediaWikiUnitTestCaseTest.php1
165 files changed, 526 insertions, 153 deletions
diff --git a/RELEASE-NOTES-1.43 b/RELEASE-NOTES-1.43
index cf44cfc319bf..407b625509fc 100644
--- a/RELEASE-NOTES-1.43
+++ b/RELEASE-NOTES-1.43
@@ -376,6 +376,21 @@ because of Phabricator reports.
- FileBackend
- Wikimedia\Http:
- MultiHttpClient
+ - Wikimedia\ObjectCache:
+ - APCUBagOStuff
+ - BagOStuff
+ - CachedBagOStuff
+ - EmptyBagOStuff
+ - HashBagOStuff
+ - IStoreKeyEncoder
+ - MediumSpecificBagOStuff
+ - MemcachedBagOStuff
+ - MemcachedPeclBagOStuff
+ - MemcachedPhpBagOStuff
+ - MultiWriteBagOStuff
+ - RESTBagOStuff
+ - RedisBagOStuff
+ - WinCacheBagOStuff
* MessageCache::get() with $language other than Language or null is
deprecated and emits deprecation warnings. For high-level access,
use wfMessage() or RequestContext::msg() instead.
diff --git a/autoload.php b/autoload.php
index 6a28e37a71b4..1773d9123970 100644
--- a/autoload.php
+++ b/autoload.php
@@ -3235,6 +3235,20 @@ $wgAutoloadLocalClasses = [
'Wikimedia\\Mime\\MimeMap' => __DIR__ . '/includes/libs/mime/MimeMap.php',
'Wikimedia\\Mime\\MimeMapMinimal' => __DIR__ . '/includes/libs/mime/MimeMapMinimal.php',
'Wikimedia\\NonSerializable\\NonSerializableTrait' => __DIR__ . '/includes/libs/NonSerializableTrait.php',
+ 'Wikimedia\\ObjectCache\\APCUBagOStuff' => __DIR__ . '/includes/libs/objectcache/APCUBagOStuff.php',
+ 'Wikimedia\\ObjectCache\\BagOStuff' => __DIR__ . '/includes/libs/objectcache/BagOStuff.php',
+ 'Wikimedia\\ObjectCache\\CachedBagOStuff' => __DIR__ . '/includes/libs/objectcache/CachedBagOStuff.php',
+ 'Wikimedia\\ObjectCache\\EmptyBagOStuff' => __DIR__ . '/includes/libs/objectcache/EmptyBagOStuff.php',
+ 'Wikimedia\\ObjectCache\\HashBagOStuff' => __DIR__ . '/includes/libs/objectcache/HashBagOStuff.php',
+ 'Wikimedia\\ObjectCache\\IStoreKeyEncoder' => __DIR__ . '/includes/libs/objectcache/IStoreKeyEncoder.php',
+ 'Wikimedia\\ObjectCache\\MediumSpecificBagOStuff' => __DIR__ . '/includes/libs/objectcache/MediumSpecificBagOStuff.php',
+ 'Wikimedia\\ObjectCache\\MemcachedBagOStuff' => __DIR__ . '/includes/libs/objectcache/MemcachedBagOStuff.php',
+ 'Wikimedia\\ObjectCache\\MemcachedPeclBagOStuff' => __DIR__ . '/includes/libs/objectcache/MemcachedPeclBagOStuff.php',
+ 'Wikimedia\\ObjectCache\\MemcachedPhpBagOStuff' => __DIR__ . '/includes/libs/objectcache/MemcachedPhpBagOStuff.php',
+ 'Wikimedia\\ObjectCache\\MultiWriteBagOStuff' => __DIR__ . '/includes/libs/objectcache/MultiWriteBagOStuff.php',
+ 'Wikimedia\\ObjectCache\\RESTBagOStuff' => __DIR__ . '/includes/libs/objectcache/RESTBagOStuff.php',
+ 'Wikimedia\\ObjectCache\\RedisBagOStuff' => __DIR__ . '/includes/libs/objectcache/RedisBagOStuff.php',
+ 'Wikimedia\\ObjectCache\\WinCacheBagOStuff' => __DIR__ . '/includes/libs/objectcache/WinCacheBagOStuff.php',
'Wikimedia\\ParamValidator\\Callbacks' => __DIR__ . '/includes/libs/ParamValidator/Callbacks.php',
'Wikimedia\\ParamValidator\\ParamValidator' => __DIR__ . '/includes/libs/ParamValidator/ParamValidator.php',
'Wikimedia\\ParamValidator\\SimpleCallbacks' => __DIR__ . '/includes/libs/ParamValidator/SimpleCallbacks.php',
diff --git a/docs/config-schema.yaml b/docs/config-schema.yaml
index 2384993cac26..e033742762d1 100644
--- a/docs/config-schema.yaml
+++ b/docs/config-schema.yaml
@@ -2387,14 +2387,14 @@ config-schema:
@since 1.20
ObjectCaches:
default:
- 0: { class: EmptyBagOStuff, reportDupes: false }
+ 0: { class: Wikimedia\ObjectCache\EmptyBagOStuff, reportDupes: false }
1: { class: SqlBagOStuff, loggroup: SQLBagOStuff }
- memcached-php: { class: MemcachedPhpBagOStuff, loggroup: memcached }
- memcached-pecl: { class: MemcachedPeclBagOStuff, loggroup: memcached }
- hash: { class: HashBagOStuff, reportDupes: false }
- apc: { class: APCUBagOStuff, reportDupes: false }
- apcu: { class: APCUBagOStuff, reportDupes: false }
- wincache: { class: WinCacheBagOStuff, reportDupes: false }
+ memcached-php: { class: Wikimedia\ObjectCache\MemcachedPhpBagOStuff, loggroup: memcached }
+ memcached-pecl: { class: Wikimedia\ObjectCache\MemcachedPeclBagOStuff, loggroup: memcached }
+ hash: { class: Wikimedia\ObjectCache\HashBagOStuff, reportDupes: false }
+ apc: { class: Wikimedia\ObjectCache\APCUBagOStuff, reportDupes: false }
+ apcu: { class: Wikimedia\ObjectCache\APCUBagOStuff, reportDupes: false }
+ wincache: { class: Wikimedia\ObjectCache\WinCacheBagOStuff, reportDupes: false }
type: object
description: |-
Advanced object cache configuration.
@@ -2446,7 +2446,7 @@ config-schema:
operations that can be chunked into a set of smaller writes.
For MemcachedPhpBagOStuff parameters see {@link MemcachedPhpBagOStuff::__construct}
For MemcachedPeclBagOStuff parameters see {@link MemcachedPeclBagOStuff::__construct}
- For RedisBagOStuff parameters see {@link RedisBagOStuff::__construct}
+ For RedisBagOStuff parameters see {@link Wikimedia\ObjectCache\RedisBagOStuff::__construct}
WANObjectCache:
default: { }
type: object
@@ -2472,7 +2472,7 @@ config-schema:
2.) it should be evicted ONLY after the TTL elapses (reliably persist),
3.) should be accessed by all servers that serve the application,
4.) should be able to handle a high volume of writes and reads.
- @see \BagOStuff
+ @see \Wikimedia\ObjectCache\BagOStuff
@since 1.42
MainStash:
default: 1
@@ -2495,7 +2495,7 @@ config-schema:
and violations of linearizability (e.g. during timeouts). Modules that can never handle
these kinds of anomalies should use other storage mediums.
Valid options are the keys of {@link $wgObjectCaches}, e.g. CACHE_* constants.
- @see \BagOStuff
+ @see \Wikimedia\ObjectCache\BagOStuff
@since 1.26
ParsoidCacheConfig:
type: object
diff --git a/includes/Html/TemplateParser.php b/includes/Html/TemplateParser.php
index 4e921cad4ddb..f4f953f993fe 100644
--- a/includes/Html/TemplateParser.php
+++ b/includes/Html/TemplateParser.php
@@ -2,13 +2,13 @@
namespace MediaWiki\Html;
-use BagOStuff;
use FileContentsHasher;
use LightnCandy\LightnCandy;
use MediaWiki\MainConfigNames;
use MediaWiki\MediaWikiServices;
use RuntimeException;
use UnexpectedValueException;
+use Wikimedia\ObjectCache\BagOStuff;
/**
* Handles compiling Mustache templates into PHP rendering functions
diff --git a/includes/MainConfigSchema.php b/includes/MainConfigSchema.php
index 695b3cb0af60..50e5c9fd4413 100644
--- a/includes/MainConfigSchema.php
+++ b/includes/MainConfigSchema.php
@@ -11,7 +11,6 @@
// phpcs:disable Generic.Files.LineLength.TooLong
namespace MediaWiki;
-use APCUBagOStuff;
use AssembleUploadChunksJob;
use BlockLogFormatter;
use CategoryMembershipChangeJob;
@@ -24,10 +23,8 @@ use DeleteLogFormatter;
use DeletePageJob;
use DoubleRedirectJob;
use EmaillingJob;
-use EmptyBagOStuff;
use EnotifNotifyJob;
use Generator;
-use HashBagOStuff;
use HTMLCacheUpdateJob;
use ImportLogFormatter;
use InvalidArgumentException;
@@ -71,8 +68,6 @@ use MediaWiki\Watchlist\ActivityUpdateJob;
use MediaWiki\Watchlist\ClearUserWatchlistJob;
use MediaWiki\Watchlist\ClearWatchlistNotificationsJob;
use MediaWiki\Watchlist\WatchlistExpiryJob;
-use MemcachedPeclBagOStuff;
-use MemcachedPhpBagOStuff;
use MergeLogFormatter;
use MoveLogFormatter;
use NullJob;
@@ -95,8 +90,13 @@ use UserEditCountInitJob;
use UserGroupExpiryJob;
use UserOptionsUpdateJob;
use Wikimedia\EventRelayer\EventRelayerNull;
+use Wikimedia\ObjectCache\APCUBagOStuff;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
+use Wikimedia\ObjectCache\MemcachedPeclBagOStuff;
+use Wikimedia\ObjectCache\MemcachedPhpBagOStuff;
+use Wikimedia\ObjectCache\WinCacheBagOStuff;
use WikitextContentHandler;
-use WinCacheBagOStuff;
/**
* This class contains schema declarations for all configuration variables
@@ -3953,7 +3953,7 @@ class MainConfigSchema {
*
* For MemcachedPeclBagOStuff parameters see {@link MemcachedPeclBagOStuff::__construct}
*
- * For RedisBagOStuff parameters see {@link RedisBagOStuff::__construct}
+ * For RedisBagOStuff parameters see {@link Wikimedia\ObjectCache\RedisBagOStuff::__construct}
*/
public const ObjectCaches = [
'default' => [
@@ -4010,7 +4010,7 @@ class MainConfigSchema {
* 3.) should be accessed by all servers that serve the application,
* 4.) should be able to handle a high volume of writes and reads.
*
- * @see \BagOStuff
+ * @see \Wikimedia\ObjectCache\BagOStuff
* @since 1.42
*/
public const MicroStashType = [
@@ -4042,7 +4042,7 @@ class MainConfigSchema {
*
* Valid options are the keys of {@link $wgObjectCaches}, e.g. CACHE_* constants.
*
- * @see \BagOStuff
+ * @see \Wikimedia\ObjectCache\BagOStuff
* @since 1.26
*/
public const MainStash = [
diff --git a/includes/MediaWikiServices.php b/includes/MediaWikiServices.php
index 15da1e738a3b..6d1a4df9df97 100644
--- a/includes/MediaWikiServices.php
+++ b/includes/MediaWikiServices.php
@@ -20,7 +20,6 @@
namespace MediaWiki;
-use BagOStuff;
use CryptHKDF;
use DateFormatterFactory;
use ExtensionRegistry;
@@ -207,6 +206,7 @@ use WikiImporterFactory;
use Wikimedia\EventRelayer\EventRelayerGroup;
use Wikimedia\Message\IMessageFormatterFactory;
use Wikimedia\NonSerializable\NonSerializableTrait;
+use Wikimedia\ObjectCache\BagOStuff;
use Wikimedia\ObjectFactory\ObjectFactory;
use Wikimedia\Parsoid\Config\DataAccess;
use Wikimedia\Rdbms\ChronologyProtector;
diff --git a/includes/Output/NoLocalSettings.php b/includes/Output/NoLocalSettings.php
index 1f766d532fcd..694b1354cbb0 100644
--- a/includes/Output/NoLocalSettings.php
+++ b/includes/Output/NoLocalSettings.php
@@ -22,6 +22,7 @@
# T32219 : can not use pathinfo() on URLs since slashes do not match
use MediaWiki\Html\TemplateParser;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
$matches = [];
$path = '/';
diff --git a/includes/ResourceLoader/ResourceLoader.php b/includes/ResourceLoader/ResourceLoader.php
index bd00db0bdd40..c295020cb28b 100644
--- a/includes/ResourceLoader/ResourceLoader.php
+++ b/includes/ResourceLoader/ResourceLoader.php
@@ -22,10 +22,8 @@
namespace MediaWiki\ResourceLoader;
-use BagOStuff;
use Exception;
use ExtensionRegistry;
-use HashBagOStuff;
use HttpStatus;
use InvalidArgumentException;
use Less_Environment;
@@ -66,6 +64,8 @@ use Wikimedia\Minify\JavaScriptMapperState;
use Wikimedia\Minify\JavaScriptMinifier;
use Wikimedia\Minify\JavaScriptMinifierState;
use Wikimedia\Minify\MinifierState;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\RequestTimeout\TimeoutException;
use Wikimedia\ScopedCallback;
use Wikimedia\Stats\StatsFactory;
diff --git a/includes/ResourceLoader/dependencystore/KeyValueDependencyStore.php b/includes/ResourceLoader/dependencystore/KeyValueDependencyStore.php
index 5fcda5b0fd52..a0cf3104dbb1 100644
--- a/includes/ResourceLoader/dependencystore/KeyValueDependencyStore.php
+++ b/includes/ResourceLoader/dependencystore/KeyValueDependencyStore.php
@@ -20,8 +20,8 @@
namespace Wikimedia\DependencyStore;
-use BagOStuff;
use InvalidArgumentException;
+use Wikimedia\ObjectCache\BagOStuff;
/**
* Track per-module file dependencies in object cache via BagOStuff.
diff --git a/includes/Rest/Router.php b/includes/Rest/Router.php
index 0018e164714d..ed6f789f2f73 100644
--- a/includes/Rest/Router.php
+++ b/includes/Rest/Router.php
@@ -2,7 +2,6 @@
namespace MediaWiki\Rest;
-use BagOStuff;
use MediaWiki\Config\ServiceOptions;
use MediaWiki\HookContainer\HookContainer;
use MediaWiki\MainConfigNames;
@@ -18,6 +17,7 @@ use MediaWiki\Rest\Validator\Validator;
use MediaWiki\Session\Session;
use Throwable;
use Wikimedia\Message\MessageValue;
+use Wikimedia\ObjectCache\BagOStuff;
use Wikimedia\ObjectFactory\ObjectFactory;
use Wikimedia\Stats\StatsFactory;
diff --git a/includes/Revision/RevisionStore.php b/includes/Revision/RevisionStore.php
index b6765e74acaf..4807cb11d0c5 100644
--- a/includes/Revision/RevisionStore.php
+++ b/includes/Revision/RevisionStore.php
@@ -25,7 +25,6 @@
namespace MediaWiki\Revision;
-use BagOStuff;
use Content;
use DBAccessObjectUtils;
use IDBAccessObject;
@@ -69,6 +68,7 @@ use Traversable;
use WANObjectCache;
use Wikimedia\Assert\Assert;
use Wikimedia\IPUtils;
+use Wikimedia\ObjectCache\BagOStuff;
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\ILoadBalancer;
diff --git a/includes/Revision/RevisionStoreFactory.php b/includes/Revision/RevisionStoreFactory.php
index 7f38a5992bb3..14a82444b14b 100644
--- a/includes/Revision/RevisionStoreFactory.php
+++ b/includes/Revision/RevisionStoreFactory.php
@@ -26,7 +26,6 @@
namespace MediaWiki\Revision;
-use BagOStuff;
use MediaWiki\CommentStore\CommentStore;
use MediaWiki\Content\IContentHandlerFactory;
use MediaWiki\HookContainer\HookContainer;
@@ -39,6 +38,7 @@ use MediaWiki\User\ActorStoreFactory;
use Psr\Log\LoggerInterface;
use WANObjectCache;
use Wikimedia\Assert\Assert;
+use Wikimedia\ObjectCache\BagOStuff;
use Wikimedia\Rdbms\ILBFactory;
/**
diff --git a/includes/ServiceWiring.php b/includes/ServiceWiring.php
index 59ddb0fc1d86..15ea48820fd7 100644
--- a/includes/ServiceWiring.php
+++ b/includes/ServiceWiring.php
@@ -245,6 +245,9 @@ use Wikimedia\DependencyStore\KeyValueDependencyStore;
use Wikimedia\DependencyStore\SqlModuleDependencyStore;
use Wikimedia\EventRelayer\EventRelayerGroup;
use Wikimedia\Message\IMessageFormatterFactory;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\ObjectFactory\ObjectFactory;
use Wikimedia\Parsoid\Config\DataAccess;
use Wikimedia\Parsoid\Parsoid;
diff --git a/includes/Settings/Cache/CachedSource.php b/includes/Settings/Cache/CachedSource.php
index ef0ee57b1683..2f00595c313d 100644
--- a/includes/Settings/Cache/CachedSource.php
+++ b/includes/Settings/Cache/CachedSource.php
@@ -2,11 +2,11 @@
namespace MediaWiki\Settings\Cache;
-use BagOStuff;
use MediaWiki\Settings\SettingsBuilderException;
use MediaWiki\Settings\Source\SettingsIncludeLocator;
use MediaWiki\Settings\Source\SettingsSource;
use Stringable;
+use Wikimedia\ObjectCache\BagOStuff;
use Wikimedia\WaitConditionLoop;
/**
diff --git a/includes/Settings/SettingsBuilder.php b/includes/Settings/SettingsBuilder.php
index 2651d739981d..70c6fbc09aec 100644
--- a/includes/Settings/SettingsBuilder.php
+++ b/includes/Settings/SettingsBuilder.php
@@ -2,7 +2,6 @@
namespace MediaWiki\Settings;
-use BagOStuff;
use ExtensionRegistry;
use MediaWiki\Config\Config;
use MediaWiki\Config\HashConfig;
@@ -23,6 +22,7 @@ use MediaWiki\Settings\Source\SettingsIncludeLocator;
use MediaWiki\Settings\Source\SettingsSource;
use RuntimeException;
use StatusValue;
+use Wikimedia\ObjectCache\BagOStuff;
use function array_key_exists;
/**
diff --git a/includes/Storage/EditResultCache.php b/includes/Storage/EditResultCache.php
index 04e04f2bf734..50107d49bf2f 100644
--- a/includes/Storage/EditResultCache.php
+++ b/includes/Storage/EditResultCache.php
@@ -20,10 +20,10 @@
namespace MediaWiki\Storage;
-use BagOStuff;
use MediaWiki\Config\ServiceOptions;
use MediaWiki\Json\FormatJson;
use MediaWiki\MainConfigNames;
+use Wikimedia\ObjectCache\BagOStuff;
use Wikimedia\Rdbms\IConnectionProvider;
/**
diff --git a/includes/Storage/PageEditStash.php b/includes/Storage/PageEditStash.php
index 6afdb7177f41..c2beb3782efc 100644
--- a/includes/Storage/PageEditStash.php
+++ b/includes/Storage/PageEditStash.php
@@ -20,7 +20,6 @@
namespace MediaWiki\Storage;
-use BagOStuff;
use Content;
use MediaWiki\HookContainer\HookContainer;
use MediaWiki\HookContainer\HookRunner;
@@ -35,6 +34,7 @@ use MediaWiki\User\UserFactory;
use MediaWiki\User\UserIdentity;
use Psr\Log\LoggerInterface;
use stdClass;
+use Wikimedia\ObjectCache\BagOStuff;
use Wikimedia\Rdbms\IConnectionProvider;
use Wikimedia\ScopedCallback;
use Wikimedia\Stats\StatsFactory;
diff --git a/includes/auth/ThrottlePreAuthenticationProvider.php b/includes/auth/ThrottlePreAuthenticationProvider.php
index b393e6137db4..74ffd79289bd 100644
--- a/includes/auth/ThrottlePreAuthenticationProvider.php
+++ b/includes/auth/ThrottlePreAuthenticationProvider.php
@@ -21,10 +21,10 @@
namespace MediaWiki\Auth;
-use BagOStuff;
use MediaWiki\MainConfigNames;
use MediaWiki\MediaWikiServices;
use MediaWiki\User\User;
+use Wikimedia\ObjectCache\BagOStuff;
/**
* A pre-authentication provider to throttle authentication actions.
diff --git a/includes/auth/Throttler.php b/includes/auth/Throttler.php
index cd3fdd4f9c63..21a382cfbce2 100644
--- a/includes/auth/Throttler.php
+++ b/includes/auth/Throttler.php
@@ -21,7 +21,6 @@
namespace MediaWiki\Auth;
-use BagOStuff;
use InvalidArgumentException;
use MediaWiki\Logger\LoggerFactory;
use MediaWiki\MainConfigNames;
@@ -29,6 +28,7 @@ use MediaWiki\MediaWikiServices;
use Psr\Log\LoggerAwareInterface;
use Psr\Log\LoggerInterface;
use Psr\Log\LogLevel;
+use Wikimedia\ObjectCache\BagOStuff;
/**
* A helper class for throttling authentication attempts.
diff --git a/includes/cache/FileCacheBase.php b/includes/cache/FileCacheBase.php
index 94f6f94cb574..d1252fe7f059 100644
--- a/includes/cache/FileCacheBase.php
+++ b/includes/cache/FileCacheBase.php
@@ -23,13 +23,13 @@
namespace MediaWiki\Cache;
-use BagOStuff;
use MediaWiki\Config\ServiceOptions;
use MediaWiki\MainConfigNames;
use MediaWiki\MediaWikiServices;
use MediaWiki\Request\WebRequest;
use Wikimedia\AtEase\AtEase;
use Wikimedia\IPUtils;
+use Wikimedia\ObjectCache\BagOStuff;
/**
* Base class for data storage in the file system.
diff --git a/includes/config-schema.php b/includes/config-schema.php
index 1a3213ea72fa..81f3c3cf4f05 100644
--- a/includes/config-schema.php
+++ b/includes/config-schema.php
@@ -464,7 +464,7 @@ return [
'LanguageConverterCacheType' => -1,
'ObjectCaches' => [
0 => [
- 'class' => 'EmptyBagOStuff',
+ 'class' => 'Wikimedia\\ObjectCache\\EmptyBagOStuff',
'reportDupes' => false,
],
1 => [
@@ -472,27 +472,27 @@ return [
'loggroup' => 'SQLBagOStuff',
],
'memcached-php' => [
- 'class' => 'MemcachedPhpBagOStuff',
+ 'class' => 'Wikimedia\\ObjectCache\\MemcachedPhpBagOStuff',
'loggroup' => 'memcached',
],
'memcached-pecl' => [
- 'class' => 'MemcachedPeclBagOStuff',
+ 'class' => 'Wikimedia\\ObjectCache\\MemcachedPeclBagOStuff',
'loggroup' => 'memcached',
],
'hash' => [
- 'class' => 'HashBagOStuff',
+ 'class' => 'Wikimedia\\ObjectCache\\HashBagOStuff',
'reportDupes' => false,
],
'apc' => [
- 'class' => 'APCUBagOStuff',
+ 'class' => 'Wikimedia\\ObjectCache\\APCUBagOStuff',
'reportDupes' => false,
],
'apcu' => [
- 'class' => 'APCUBagOStuff',
+ 'class' => 'Wikimedia\\ObjectCache\\APCUBagOStuff',
'reportDupes' => false,
],
'wincache' => [
- 'class' => 'WinCacheBagOStuff',
+ 'class' => 'Wikimedia\\ObjectCache\\WinCacheBagOStuff',
'reportDupes' => false,
],
],
diff --git a/includes/config/EtcdConfig.php b/includes/config/EtcdConfig.php
index 63cb4608f547..b9a66eec803b 100644
--- a/includes/config/EtcdConfig.php
+++ b/includes/config/EtcdConfig.php
@@ -20,13 +20,13 @@
namespace MediaWiki\Config;
-use BagOStuff;
use DnsSrvDiscoverer;
-use HashBagOStuff;
use Psr\Log\LoggerAwareInterface;
use Psr\Log\LoggerInterface;
use Wikimedia\Http\MultiHttpClient;
use Wikimedia\IPUtils;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\ObjectFactory\ObjectFactory;
use Wikimedia\WaitConditionLoop;
diff --git a/includes/db/MWLBFactory.php b/includes/db/MWLBFactory.php
index aea6f2b7cecb..d7ce119c8569 100644
--- a/includes/db/MWLBFactory.php
+++ b/includes/db/MWLBFactory.php
@@ -28,6 +28,7 @@ use MediaWiki\Debug\MWDebug;
use MediaWiki\Deferred\DeferredUpdates;
use MediaWiki\Logger\LoggerFactory;
use MediaWiki\MainConfigNames;
+use Wikimedia\ObjectCache\BagOStuff;
use Wikimedia\Rdbms\ChronologyProtector;
use Wikimedia\Rdbms\ConfiguredReadOnlyMode;
use Wikimedia\Rdbms\DatabaseDomain;
diff --git a/includes/edit/SimpleParsoidOutputStash.php b/includes/edit/SimpleParsoidOutputStash.php
index cfdbb7903fdf..a19db49e7b4c 100644
--- a/includes/edit/SimpleParsoidOutputStash.php
+++ b/includes/edit/SimpleParsoidOutputStash.php
@@ -2,9 +2,9 @@
namespace MediaWiki\Edit;
-use BagOStuff;
use MediaWiki\Content\IContentHandlerFactory;
use MediaWiki\Parser\Parsoid\PageBundleJsonTrait;
+use Wikimedia\ObjectCache\BagOStuff;
/**
* @internal
diff --git a/includes/filebackend/FileBackendGroup.php b/includes/filebackend/FileBackendGroup.php
index aed10f1477a6..5f0f7acc1109 100644
--- a/includes/filebackend/FileBackendGroup.php
+++ b/includes/filebackend/FileBackendGroup.php
@@ -23,7 +23,6 @@
namespace MediaWiki\FileBackend;
-use BagOStuff;
use FileBackendMultiWrite;
use FSFileBackend;
use InvalidArgumentException;
@@ -39,6 +38,7 @@ use MimeAnalyzer;
use Profiler;
use WANObjectCache;
use Wikimedia\FileBackend\FileBackend;
+use Wikimedia\ObjectCache\BagOStuff;
use Wikimedia\ObjectFactory\ObjectFactory;
use Wikimedia\Rdbms\ReadOnlyMode;
diff --git a/includes/installer/Installer.php b/includes/installer/Installer.php
index 5e1391ffbddc..f4923f20238c 100644
--- a/includes/installer/Installer.php
+++ b/includes/installer/Installer.php
@@ -27,7 +27,6 @@
namespace MediaWiki\Installer;
use AutoLoader;
-use EmptyBagOStuff;
use Exception;
use ExecutableFinder;
use ExtensionDependencyError;
@@ -63,6 +62,7 @@ use MWCryptRand;
use ParserOptions;
use RuntimeException;
use Wikimedia\AtEase\AtEase;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
use Wikimedia\Services\ServiceDisabledException;
use WikitextContent;
diff --git a/includes/installer/Pingback.php b/includes/installer/Pingback.php
index 4197213354be..ec0559fdf08a 100644
--- a/includes/installer/Pingback.php
+++ b/includes/installer/Pingback.php
@@ -20,13 +20,13 @@
namespace MediaWiki\Installer;
-use BagOStuff;
use MediaWiki\Config\Config;
use MediaWiki\Http\HttpRequestFactory;
use MediaWiki\Json\FormatJson;
use MediaWiki\MainConfigNames;
use MWCryptRand;
use Psr\Log\LoggerInterface;
+use Wikimedia\ObjectCache\BagOStuff;
use Wikimedia\Rdbms\DBError;
use Wikimedia\Rdbms\IConnectionProvider;
use Wikimedia\Timestamp\ConvertibleTimestamp;
diff --git a/includes/jobqueue/JobQueueMemory.php b/includes/jobqueue/JobQueueMemory.php
index 56149077358a..37bbdc2f8923 100644
--- a/includes/jobqueue/JobQueueMemory.php
+++ b/includes/jobqueue/JobQueueMemory.php
@@ -18,6 +18,8 @@
* @file
*/
+use Wikimedia\ObjectCache\HashBagOStuff;
+
/**
* PHP memory-backed job queue storage, for testing.
*
diff --git a/includes/language/LanguageConverter.php b/includes/language/LanguageConverter.php
index a1c740cdab12..c013790c1233 100644
--- a/includes/language/LanguageConverter.php
+++ b/includes/language/LanguageConverter.php
@@ -38,6 +38,7 @@ use MediaWiki\Revision\SlotRecord;
use MediaWiki\StubObject\StubUserLang;
use MediaWiki\Title\Title;
use MediaWiki\User\User;
+use Wikimedia\ObjectCache\BagOStuff;
/**
* Base class for multi-variant language conversion.
diff --git a/includes/language/LanguageNameUtils.php b/includes/language/LanguageNameUtils.php
index 313b3df019f0..aa5a7d3d5441 100644
--- a/includes/language/LanguageNameUtils.php
+++ b/includes/language/LanguageNameUtils.php
@@ -20,8 +20,6 @@
namespace MediaWiki\Languages;
-use BagOStuff;
-use HashBagOStuff;
use InvalidArgumentException;
use LanguageCode;
use MediaWiki\Config\ServiceOptions;
@@ -29,6 +27,8 @@ use MediaWiki\HookContainer\HookContainer;
use MediaWiki\HookContainer\HookRunner;
use MediaWiki\MainConfigNames;
use MediaWiki\Title\MediaWikiTitleCodec;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
/**
* A service that provides utilities to do with language names and codes.
diff --git a/includes/language/MessageCache.php b/includes/language/MessageCache.php
index 8ff315c609d3..c22c90dfeb89 100644
--- a/includes/language/MessageCache.php
+++ b/includes/language/MessageCache.php
@@ -43,6 +43,8 @@ use MediaWiki\Title\Title;
use Psr\Log\LoggerAwareInterface;
use Psr\Log\LoggerInterface;
use Wikimedia\LightweightObjectStore\ExpirationAwareness;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\IExpression;
use Wikimedia\Rdbms\IResultWrapper;
diff --git a/includes/language/dependency/DependencyWrapper.php b/includes/language/dependency/DependencyWrapper.php
index 45b1ffc3382c..ade7d3327c6e 100644
--- a/includes/language/dependency/DependencyWrapper.php
+++ b/includes/language/dependency/DependencyWrapper.php
@@ -18,6 +18,8 @@
* @file
*/
+use Wikimedia\ObjectCache\BagOStuff;
+
/**
* Store an arbitrary value whilst representing several CacheDependency objects as one.
*
diff --git a/includes/libs/CryptHKDF.php b/includes/libs/CryptHKDF.php
index 80e4aa0b79f6..4ee893cdbfe6 100644
--- a/includes/libs/CryptHKDF.php
+++ b/includes/libs/CryptHKDF.php
@@ -1,4 +1,7 @@
<?php
+
+use Wikimedia\ObjectCache\BagOStuff;
+
/**
* Extract-and-Expand Key Derivation Function (HKDF). A cryptographically
* secure key expansion function based on RFC 5869.
diff --git a/includes/libs/WRStats/BagOStuffStatsStore.php b/includes/libs/WRStats/BagOStuffStatsStore.php
index eff03346e894..54eaca08546b 100644
--- a/includes/libs/WRStats/BagOStuffStatsStore.php
+++ b/includes/libs/WRStats/BagOStuffStatsStore.php
@@ -2,7 +2,7 @@
namespace Wikimedia\WRStats;
-use BagOStuff;
+use Wikimedia\ObjectCache\BagOStuff;
/**
* An adaptor allowing WRStats to store data in MediaWiki's BagOStuff
diff --git a/includes/libs/filebackend/FileBackendStore.php b/includes/libs/filebackend/FileBackendStore.php
index 7b93d71fe74d..8a36e2f0648e 100644
--- a/includes/libs/filebackend/FileBackendStore.php
+++ b/includes/libs/filebackend/FileBackendStore.php
@@ -24,6 +24,8 @@
use MediaWiki\Json\FormatJson;
use Wikimedia\AtEase\AtEase;
use Wikimedia\FileBackend\FileBackend;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
use Wikimedia\Timestamp\ConvertibleTimestamp;
/**
diff --git a/includes/libs/filebackend/SwiftFileBackend.php b/includes/libs/filebackend/SwiftFileBackend.php
index c2eef4e52b54..82ddfd85caeb 100644
--- a/includes/libs/filebackend/SwiftFileBackend.php
+++ b/includes/libs/filebackend/SwiftFileBackend.php
@@ -28,6 +28,8 @@ use Psr\Log\LoggerInterface;
use Wikimedia\AtEase\AtEase;
use Wikimedia\FileBackend\FileBackend;
use Wikimedia\Http\MultiHttpClient;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
use Wikimedia\RequestTimeout\TimeoutException;
/**
diff --git a/includes/libs/lockmanager/MemcLockManager.php b/includes/libs/lockmanager/MemcLockManager.php
index b59acc736f5c..43259d6acaf7 100644
--- a/includes/libs/lockmanager/MemcLockManager.php
+++ b/includes/libs/lockmanager/MemcLockManager.php
@@ -17,6 +17,9 @@
*
* @file
*/
+
+use Wikimedia\ObjectCache\MemcachedBagOStuff;
+use Wikimedia\ObjectCache\MemcachedPhpBagOStuff;
use Wikimedia\WaitConditionLoop;
/**
diff --git a/includes/libs/objectcache/APCUBagOStuff.php b/includes/libs/objectcache/APCUBagOStuff.php
index 8395fb75d262..9f88883b374f 100644
--- a/includes/libs/objectcache/APCUBagOStuff.php
+++ b/includes/libs/objectcache/APCUBagOStuff.php
@@ -21,6 +21,8 @@
* @ingroup Cache
*/
+namespace Wikimedia\ObjectCache;
+
/**
* This is a wrapper for APCu's shared memory functions
*
@@ -133,3 +135,6 @@ class APCUBagOStuff extends MediumSpecificBagOStuff {
return $result;
}
}
+
+/** @deprecated class alias since 1.43 */
+class_alias( APCUBagOStuff::class, 'APCUBagOStuff' );
diff --git a/includes/libs/objectcache/BagOStuff.php b/includes/libs/objectcache/BagOStuff.php
index 96a79924c872..41d076213ce2 100644
--- a/includes/libs/objectcache/BagOStuff.php
+++ b/includes/libs/objectcache/BagOStuff.php
@@ -26,6 +26,9 @@
* @defgroup Cache Cache
*/
+namespace Wikimedia\ObjectCache;
+
+use InvalidArgumentException;
use Psr\Log\LoggerAwareInterface;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
@@ -151,13 +154,15 @@ abstract class BagOStuff implements
/**
* @stable to call
+ *
* @param array $params Parameters include:
* - keyspace: Keyspace to use for keys in makeKey(). [Default: "local"]
* - asyncHandler: Callable to use for scheduling tasks after the web request ends.
* In CLI mode, it should run the task immediately. [Default: null]
* - stats: IStatsdDataFactory instance. [optional]
- * - logger: Psr\Log\LoggerInterface instance. [optional]
- * @phan-param array{keyspace?:string,logger?:Psr\Log\LoggerInterface,asyncHandler?:callable} $params
+ * - logger: \Psr\Log\LoggerInterface instance. [optional]
+ *
+ * @phan-param array{keyspace?:string,logger?:\Psr\Log\LoggerInterface,asyncHandler?:callable} $params
*/
public function __construct( array $params = [] ) {
$this->keyspace = $params['keyspace'] ?? 'local';
@@ -172,6 +177,7 @@ abstract class BagOStuff implements
/**
* @param LoggerInterface $logger
+ *
* @return void
*/
public function setLogger( LoggerInterface $logger ) {
@@ -196,6 +202,7 @@ abstract class BagOStuff implements
* @param int $exptime Time-to-live (seconds)
* @param callable $callback Callback that derives the new value
* @param int $flags Bitfield of BagOStuff::READ_* or BagOStuff::WRITE_* constants [optional]
+ *
* @return mixed The cached value if found or the result of $callback otherwise
* @since 1.27
*/
@@ -223,6 +230,7 @@ abstract class BagOStuff implements
*
* @param string $key
* @param int $flags Bitfield of BagOStuff::READ_* constants [optional]
+ *
* @return mixed Returns false on failure or if the item does not exist
*/
abstract public function get( $key, $flags = 0 );
@@ -234,6 +242,7 @@ abstract class BagOStuff implements
* @param mixed $value
* @param int $exptime Either an interval in seconds or a unix timestamp for expiry
* @param int $flags Bitfield of BagOStuff::WRITE_* constants
+ *
* @return bool Success
*/
abstract public function set( $key, $value, $exptime = 0, $flags = 0 );
@@ -247,6 +256,7 @@ abstract class BagOStuff implements
*
* @param string $key
* @param int $flags Bitfield of BagOStuff::WRITE_* constants
+ *
* @return bool Success (item deleted or not found)
*/
abstract public function delete( $key, $flags = 0 );
@@ -258,6 +268,7 @@ abstract class BagOStuff implements
* @param mixed $value
* @param int $exptime
* @param int $flags Bitfield of BagOStuff::WRITE_* constants (since 1.33)
+ *
* @return bool Success (item created)
*/
abstract public function add( $key, $value, $exptime = 0, $flags = 0 );
@@ -276,6 +287,7 @@ abstract class BagOStuff implements
* @param int $exptime Either an interval in seconds or a unix timestamp for expiry
* @param int $attempts The amount of times to attempt a merge in case of failure
* @param int $flags Bitfield of BagOStuff::WRITE_* constants
+ *
* @return bool Success
* @throws InvalidArgumentException
*/
@@ -301,6 +313,7 @@ abstract class BagOStuff implements
* @param string $key
* @param int $exptime TTL or UNIX timestamp
* @param int $flags Bitfield of BagOStuff::WRITE_* constants (since 1.33)
+ *
* @return bool Success (item found and updated)
* @since 1.28
*/
@@ -316,6 +329,7 @@ abstract class BagOStuff implements
* using the same value for this parameter, then return true and use reference counting so
* that only the unlock() call from the outermost lock() caller actually releases the lock
* (note that only the outermost time-to-live is used) [optional]
+ *
* @return bool Success
*/
abstract public function lock( $key, $timeout = 6, $exptime = 6, $rclass = '' );
@@ -324,6 +338,7 @@ abstract class BagOStuff implements
* Release an advisory lock on a key string
*
* @param string $key
+ *
* @return bool Success
*/
abstract public function unlock( $key );
@@ -341,6 +356,7 @@ abstract class BagOStuff implements
* @param int $timeout Lock wait timeout; 0 for non-blocking [optional]
* @param int $exptime Lock time-to-live [optional]; 1 day maximum
* @param string $rclass Allow reentry if set and the current lock used this value
+ *
* @return ScopedCallback|null Returns null on failure
* @since 1.26
*/
@@ -366,6 +382,7 @@ abstract class BagOStuff implements
* @param int|float $limit Maximum number of keys to delete [default: INF]
* @param string|null $tag Tag to purge a single shard only.
* This is only supported when server tags are used in configuration.
+ *
* @return bool Success; false if unimplemented
*/
abstract public function deleteObjectsExpiringBefore(
@@ -380,6 +397,7 @@ abstract class BagOStuff implements
*
* @param string[] $keys List of keys
* @param int $flags Bitfield; supports READ_LATEST [optional]
+ *
* @return mixed[] Map of (key => value) for existing keys
*/
abstract public function getMulti( array $keys, $flags = 0 );
@@ -394,6 +412,7 @@ abstract class BagOStuff implements
* @param mixed[] $valueByKey Map of (key => value)
* @param int $exptime Either an interval in seconds or a unix timestamp for expiry
* @param int $flags Bitfield of BagOStuff::WRITE_* constants (since 1.33)
+ *
* @return bool Success
* @since 1.24
*/
@@ -408,6 +427,7 @@ abstract class BagOStuff implements
*
* @param string[] $keys List of keys
* @param int $flags Bitfield of BagOStuff::WRITE_* constants
+ *
* @return bool Success (items deleted and/or not found)
* @since 1.33
*/
@@ -421,6 +441,7 @@ abstract class BagOStuff implements
* @param string[] $keys List of keys
* @param int $exptime TTL or UNIX timestamp
* @param int $flags Bitfield of BagOStuff::WRITE_* constants (since 1.33)
+ *
* @return bool Success (all items found and updated)
* @since 1.34
*/
@@ -441,6 +462,7 @@ abstract class BagOStuff implements
* @param int $step Amount to increase the key value by [default: 1]
* @param int|null $init Value to initialize the key to if it does not exist [default: $step]
* @param int $flags Bit field of class WRITE_* constants [optional]
+ *
* @return int|bool New value (or true if asynchronous) on success; false on failure
* @since 1.24
*/
@@ -470,6 +492,7 @@ abstract class BagOStuff implements
* - The caller invokes getLastError()
*
* @param int $watchPoint Only consider errors from after this "watch point" [optional]
+ *
* @return int BagOStuff:ERR_* constant for the "last error" registry
* @note Parameters added in 1.38: $watchPoint
* @since 1.23
@@ -492,6 +515,7 @@ abstract class BagOStuff implements
* Set the "last error" registry due to a problem encountered during an attempted operation
*
* @param int $error BagOStuff:ERR_* constant
+ *
* @since 1.23
*/
protected function setLastError( $error ) {
@@ -509,8 +533,10 @@ abstract class BagOStuff implements
*
* @see BagOStuff::makeKeyInternal
* @since 1.27
+ *
* @param string $keygroup Key group component, should be under 48 characters.
* @param string|int ...$components Additional, ordered, key components for entity IDs
+ *
* @return string Colon-separated, keyspace-prepended, ordered list of encoded components
*/
public function makeGlobalKey( $keygroup, ...$components ) {
@@ -538,8 +564,10 @@ abstract class BagOStuff implements
*
* @see BagOStuff::makeKeyInternal
* @since 1.27
+ *
* @param string $keygroup Key group component, should be under 48 characters.
* @param string|int ...$components Additional, ordered, key components for entity IDs
+ *
* @return string Colon-separated, keyspace-prepended, ordered list of encoded components
*/
public function makeKey( $keygroup, ...$components ) {
@@ -550,6 +578,7 @@ abstract class BagOStuff implements
* Check whether a cache key is in the global keyspace
*
* @param string $key
+ *
* @return bool
* @since 1.35
*/
@@ -559,6 +588,7 @@ abstract class BagOStuff implements
/**
* @param int $flag BagOStuff::ATTR_* constant
+ *
* @return int BagOStuff:QOS_* constant
* @since 1.28
*/
@@ -573,6 +603,7 @@ abstract class BagOStuff implements
*/
public function getSegmentationSize() {
wfDeprecated( __METHOD__, '1.43' );
+
return INF;
}
@@ -583,12 +614,14 @@ abstract class BagOStuff implements
*/
public function getSegmentedValueMaxSize() {
wfDeprecated( __METHOD__, '1.43' );
+
return INF;
}
/**
* @param int $field
* @param int $flags
+ *
* @return bool
* @since 1.34
*/
@@ -600,6 +633,7 @@ abstract class BagOStuff implements
* Merge the flag maps of one or more BagOStuff objects into a "lowest common denominator" map
*
* @param BagOStuff[] $bags
+ *
* @return int[] Resulting flag map (class ATTR_* constant => class QOS_* constant)
*/
final protected function mergeFlagMaps( array $bags ) {
@@ -630,8 +664,10 @@ abstract class BagOStuff implements
*
* @see BagOStuff::proxyCall
* @since 1.27
+ *
* @param string $keyspace
* @param string[]|int[] $components Key group and other components
+ *
* @return string
*/
protected function makeKeyInternal( $keyspace, $components ) {
@@ -644,6 +680,7 @@ abstract class BagOStuff implements
// Escape delimiter (":") and escape ("%") characters
$key .= ':' . strtr( $component, [ '%' => '%25', ':' => '%3A' ] );
}
+
return $key;
}
@@ -664,7 +701,9 @@ abstract class BagOStuff implements
* Convert a key from BagOStuff::makeKeyInternal into one for the current subclass
*
* @see BagOStuff::proxyCall
+ *
* @param string $key Result from BagOStuff::makeKeyInternal
+ *
* @return string Result from current subclass override of BagOStuff::makeKeyInternal
*/
private function convertGenericKey( $key ) {
@@ -704,6 +743,7 @@ abstract class BagOStuff implements
* @param int $resSig BagOStuff::RES_* constant describing the return value
* @param array $genericArgs Method arguments passed to the wrapper instance
* @param BagOStuff $wrapper The wrapper BagOStuff instance using this result
+ *
* @return mixed Method result with any keys remapped to "generic" keys
*/
protected function proxyCall(
@@ -767,10 +807,15 @@ abstract class BagOStuff implements
/**
* @internal For testing only
+ *
* @param float|null &$time Mock UNIX timestamp
+ *
* @codeCoverageIgnore
*/
public function setMockTime( &$time ) {
$this->wallClockOverride =& $time;
}
}
+
+/** @deprecated class alias since 1.43 */
+class_alias( BagOStuff::class, 'BagOStuff' );
diff --git a/includes/libs/objectcache/CachedBagOStuff.php b/includes/libs/objectcache/CachedBagOStuff.php
index 72662e6f5a01..80163e8e2839 100644
--- a/includes/libs/objectcache/CachedBagOStuff.php
+++ b/includes/libs/objectcache/CachedBagOStuff.php
@@ -21,6 +21,8 @@
* @ingroup Cache
*/
+namespace Wikimedia\ObjectCache;
+
/**
* Wrapper around a BagOStuff that caches data in memory
*
@@ -42,6 +44,7 @@ class CachedBagOStuff extends BagOStuff {
/**
* @stable to call
+ *
* @param BagOStuff $backend Permanent backend to use
* @param array $params Parameters for HashBagOStuff
*/
@@ -271,3 +274,6 @@ class CachedBagOStuff extends BagOStuff {
// @codeCoverageIgnoreEnd
}
+
+/** @deprecated class alias since 1.43 */
+class_alias( CachedBagOStuff::class, 'CachedBagOStuff' );
diff --git a/includes/libs/objectcache/EmptyBagOStuff.php b/includes/libs/objectcache/EmptyBagOStuff.php
index d9d1c314153b..eef3cc0017d3 100644
--- a/includes/libs/objectcache/EmptyBagOStuff.php
+++ b/includes/libs/objectcache/EmptyBagOStuff.php
@@ -21,6 +21,8 @@
* @ingroup Cache
*/
+namespace Wikimedia\ObjectCache;
+
/**
* A BagOStuff object with no objects in it. Used to provide a no-op object to calling code.
*
@@ -61,3 +63,6 @@ class EmptyBagOStuff extends MediumSpecificBagOStuff {
return true;
}
}
+
+/** @deprecated class alias since 1.43 */
+class_alias( EmptyBagOStuff::class, 'EmptyBagOStuff' );
diff --git a/includes/libs/objectcache/HashBagOStuff.php b/includes/libs/objectcache/HashBagOStuff.php
index aebbaf3ed4db..07b74fbfbd90 100644
--- a/includes/libs/objectcache/HashBagOStuff.php
+++ b/includes/libs/objectcache/HashBagOStuff.php
@@ -21,6 +21,10 @@
* @ingroup Cache
*/
+namespace Wikimedia\ObjectCache;
+
+use InvalidArgumentException;
+
/**
* Simple store for keeping values in an associative array for the current process.
*
@@ -47,10 +51,12 @@ class HashBagOStuff extends MediumSpecificBagOStuff {
/**
* @stable to call
+ *
* @param array $params Additional parameters include:
* - maxKeys : only allow this many keys (using oldest-first eviction)
+ *
* @phpcs:ignore Generic.Files.LineLength
- * @phan-param array{logger?:Psr\Log\LoggerInterface,asyncHandler?:callable,keyspace?:string,reportDupes?:bool,segmentationSize?:int,segmentedValueMaxSize?:int,maxKeys?:int} $params
+ * @phan-param array{logger?:\Psr\Log\LoggerInterface,asyncHandler?:callable,keyspace?:string,reportDupes?:bool,segmentationSize?:int,segmentedValueMaxSize?:int,maxKeys?:int} $params
*/
public function __construct( $params = [] ) {
$params['segmentationSize'] ??= INF;
@@ -142,6 +148,7 @@ class HashBagOStuff extends MediumSpecificBagOStuff {
/**
* @param string $key
+ *
* @return bool
*/
protected function expire( $key ) {
@@ -159,6 +166,7 @@ class HashBagOStuff extends MediumSpecificBagOStuff {
* Does this bag have a non-null value for the given key?
*
* @param string $key
+ *
* @return bool
* @since 1.27
*/
@@ -166,3 +174,6 @@ class HashBagOStuff extends MediumSpecificBagOStuff {
return isset( $this->bag[$key] );
}
}
+
+/** @deprecated class alias since 1.43 */
+class_alias( HashBagOStuff::class, 'HashBagOStuff' );
diff --git a/includes/libs/objectcache/IStoreKeyEncoder.php b/includes/libs/objectcache/IStoreKeyEncoder.php
index b7223ef44f7f..b39ec8035dd8 100644
--- a/includes/libs/objectcache/IStoreKeyEncoder.php
+++ b/includes/libs/objectcache/IStoreKeyEncoder.php
@@ -1,5 +1,7 @@
<?php
+namespace Wikimedia\ObjectCache;
+
/**
* Key-encoding methods for object caching (BagOStuff and WANObjectCache)
*
@@ -9,17 +11,24 @@
interface IStoreKeyEncoder {
/**
* @see BagOStuff::makeGlobalKey
+ *
* @param string $keygroup
* @param string|int ...$components
+ *
* @return string
*/
public function makeGlobalKey( $keygroup, ...$components );
/**
* @see BagOStuff::makeKey
+ *
* @param string $keygroup
* @param string|int ...$components
+ *
* @return string
*/
public function makeKey( $keygroup, ...$components );
}
+
+/** @deprecated class alias since 1.43 */
+class_alias( IStoreKeyEncoder::class, 'IStoreKeyEncoder' );
diff --git a/includes/libs/objectcache/MediumSpecificBagOStuff.php b/includes/libs/objectcache/MediumSpecificBagOStuff.php
index 6d4bd0fe2d95..7530f2602ddd 100644
--- a/includes/libs/objectcache/MediumSpecificBagOStuff.php
+++ b/includes/libs/objectcache/MediumSpecificBagOStuff.php
@@ -21,6 +21,12 @@
* @ingroup Cache
*/
+namespace Wikimedia\ObjectCache;
+
+use InvalidArgumentException;
+use JsonSerializable;
+use SerializedValueContainer;
+use stdClass;
use Wikimedia\WaitConditionLoop;
/**
@@ -81,9 +87,11 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* - segmentedValueMaxSize: The maximum total size, in bytes, of segmented values.
* This should be configured to a reasonable size give the site traffic and the
* amount of I/O between application and cache servers that the network can handle.
+ *
* @param array $params
+ *
* @phpcs:ignore Generic.Files.LineLength
- * @phan-param array{logger?:Psr\Log\LoggerInterface,asyncHandler?:callable,reportDupes?:bool,segmentationSize?:int|float,segmentedValueMaxSize?:int} $params
+ * @phan-param array{logger?:\Psr\Log\LoggerInterface,asyncHandler?:callable,reportDupes?:bool,segmentationSize?:int|float,segmentedValueMaxSize?:int} $params
*/
public function __construct( array $params = [] ) {
parent::__construct( $params );
@@ -109,6 +117,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
*
* @param string $key
* @param int $flags Bitfield of BagOStuff::READ_* constants [optional]
+ *
* @return mixed Returns false on failure or if the item does not exist
*/
public function get( $key, $flags = 0 ) {
@@ -119,6 +128,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
/**
* Track the number of times that a given key has been used.
+ *
* @param string $key
*/
private function trackDuplicateKeys( $key ) {
@@ -158,6 +168,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* @param string $key
* @param int $flags Bitfield of BagOStuff::READ_* constants [optional]
* @param mixed &$casToken CAS token if MediumSpecificBagOStuff::PASS_BY_REF [returned]
+ *
* @return mixed Returns false on failure or if the item does not exist
*/
abstract protected function doGet( $key, $flags = 0, &$casToken = null );
@@ -169,10 +180,12 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* @param mixed $value
* @param int $exptime Either an interval in seconds or a unix timestamp for expiry
* @param int $flags Bitfield of BagOStuff::WRITE_* constants
+ *
* @return bool Success
*/
public function set( $key, $value, $exptime = 0, $flags = 0 ) {
$entry = $this->makeValueOrSegmentList( $key, $value, $exptime, $flags, $ok );
+
// Only when all segments (if any) are stored should the main key be changed
return $ok && $this->doSet( $key, $entry, $exptime, $flags );
}
@@ -184,6 +197,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* @param mixed $value
* @param int $exptime Either an interval in seconds or a unix timestamp for expiry
* @param int $flags Bitfield of BagOStuff::WRITE_* constants
+ *
* @return bool Success
*/
abstract protected function doSet( $key, $value, $exptime = 0, $flags = 0 );
@@ -197,6 +211,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
*
* @param string $key
* @param int $flags Bitfield of BagOStuff::WRITE_* constants
+ *
* @return bool True if the item was deleted or not found, false on failure
*/
public function delete( $key, $flags = 0 ) {
@@ -229,12 +244,14 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
*
* @param string $key
* @param int $flags Bitfield of BagOStuff::WRITE_* constants
+ *
* @return bool True if the item was deleted or not found, false on failure
*/
abstract protected function doDelete( $key, $flags = 0 );
public function add( $key, $value, $exptime = 0, $flags = 0 ) {
$entry = $this->makeValueOrSegmentList( $key, $value, $exptime, $flags, $ok );
+
// Only when all segments (if any) are stored should the main key be changed
return $ok && $this->doAdd( $key, $entry, $exptime, $flags );
}
@@ -246,6 +263,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* @param mixed $value
* @param int $exptime
* @param int $flags Bitfield of BagOStuff::WRITE_* constants (since 1.33)
+ *
* @return bool Success
*/
abstract protected function doAdd( $key, $value, $exptime = 0, $flags = 0 );
@@ -264,6 +282,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* @param int $exptime Either an interval in seconds or a unix timestamp for expiry
* @param int $attempts The amount of times to attempt a merge in case of failure
* @param int $flags Bitfield of BagOStuff::WRITE_* constants
+ *
* @return bool Success
*/
public function merge( $key, callable $callback, $exptime = 0, $attempts = 10, $flags = 0 ) {
@@ -276,6 +295,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* @param int $exptime Either an interval in seconds or a unix timestamp for expiry
* @param int $attempts The amount of times to attempt a merge in case of failure
* @param int $flags Bitfield of BagOStuff::WRITE_* constants
+ *
* @return bool Success
* @see BagOStuff::merge()
*/
@@ -292,8 +312,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
if ( $this->getLastError( $watchPoint ) ) {
// Don't spam slow retries due to network problems (retry only on races)
$this->logger->warning(
- __METHOD__ . ' failed due to read I/O error on get() for {key}.',
- [ 'key' => $key ]
+ __METHOD__ . ' failed due to read I/O error on get() for {key}.', [ 'key' => $key ]
);
$success = false;
break;
@@ -343,6 +362,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* @param mixed $value
* @param int $exptime Either an interval in seconds or a unix timestamp for expiry
* @param int $flags Bitfield of BagOStuff::WRITE_* constants
+ *
* @return bool Success
*/
protected function cas( $casToken, $key, $value, $exptime = 0, $flags = 0 ) {
@@ -357,6 +377,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
}
$entry = $this->makeValueOrSegmentList( $key, $value, $exptime, $flags, $ok );
+
// Only when all segments (if any) are stored should the main key be changed
return $ok && $this->doCas( $casToken, $key, $entry, $exptime, $flags );
}
@@ -369,6 +390,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* @param mixed $value
* @param int $exptime Either an interval in seconds or a unix timestamp for expiry
* @param int $flags Bitfield of BagOStuff::WRITE_* constants
+ *
* @return bool Success
*/
protected function doCas( $casToken, $key, $value, $exptime = 0, $flags = 0 ) {
@@ -407,6 +429,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
/**
* @param mixed $value CAS token for an existing key
* @param mixed $otherValue CAS token for an existing key
+ *
* @return bool Whether the two tokens match
*/
final protected function tokensMatch( $value, $otherValue ) {
@@ -421,6 +444,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
if ( $type === 'array' || $type === 'object' ) {
return ( serialize( $value ) === serialize( $otherValue ) );
}
+
// For string/integer tokens, use a simple comparison
return ( $value === $otherValue );
}
@@ -439,6 +463,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* @param string $key
* @param int $exptime TTL or UNIX timestamp
* @param int $flags Bitfield of BagOStuff::WRITE_* constants (since 1.33)
+ *
* @return bool Success Returns false on failure or if the item does not exist
* @since 1.28
*/
@@ -450,6 +475,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* @param string $key
* @param int $exptime
* @param int $flags
+ *
* @return bool
*/
protected function doChangeTTL( $key, $exptime, $flags ) {
@@ -491,6 +517,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* @param int $step
* @param int $init
* @param int $flags
+ *
* @return int|bool New value or false on failure
*/
abstract protected function doIncrWithInit( $key, $exptime, $step, $init, $flags );
@@ -500,6 +527,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* @param int $timeout
* @param int $exptime
* @param string $rclass
+ *
* @return bool
*/
public function lock( $key, $timeout = 6, $exptime = 6, $rclass = '' ) {
@@ -536,6 +564,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* @param string $key
* @param int $timeout Lock wait timeout; 0 for non-blocking [optional]
* @param int $exptime Lock time-to-live 1 day maximum [optional]
+ *
* @return float|null UNIX timestamp of acquisition; null on failure
*/
protected function doLock( $key, $timeout, $exptime ) {
@@ -578,6 +607,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* Release an advisory lock on a key string
*
* @param string $key
+ *
* @return bool Success
*/
public function unlock( $key ) {
@@ -610,6 +640,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* @see MediumSpecificBagOStuff::unlock()
*
* @param string $key
+ *
* @return bool Success
*/
protected function doUnlock( $key ) {
@@ -642,6 +673,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
/**
* @param string $key
+ *
* @return string
*/
protected function makeLockKey( $key ) {
@@ -659,8 +691,10 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
/**
* Get an associative array containing the item for each of the keys that have items.
+ *
* @param string[] $keys List of keys; can be a map of (unused => key) for convenience
* @param int $flags Bitfield; supports READ_LATEST [optional]
+ *
* @return mixed[] Map of (key => value) for existing keys; preserves the order of $keys
*/
public function getMulti( array $keys, $flags = 0 ) {
@@ -683,8 +717,10 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
/**
* Get an associative array containing the item for each of the keys that have items.
+ *
* @param string[] $keys List of keys
* @param int $flags Bitfield; supports READ_LATEST [optional]
+ *
* @return array Map of (key => value) for existing keys; preserves the order of $keys
*/
protected function doGetMulti( array $keys, $flags = 0 ) {
@@ -707,6 +743,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* @param mixed[] $valueByKey Map of (key => value)
* @param int $exptime Either an interval in seconds or a unix timestamp for expiry
* @param int $flags Bitfield of BagOStuff::WRITE_* constants (since 1.33)
+ *
* @return bool Success
* @since 1.24
*/
@@ -722,6 +759,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* @param mixed[] $data Map of (key => value)
* @param int $exptime Either an interval in seconds or a unix timestamp for expiry
* @param int $flags Bitfield of BagOStuff::WRITE_* constants
+ *
* @return bool Success
*/
protected function doSetMulti( array $data, $exptime = 0, $flags = 0 ) {
@@ -740,6 +778,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
*
* @param string[] $keys List of keys
* @param int $flags Bitfield of BagOStuff::WRITE_* constants
+ *
* @return bool Success
* @since 1.33
*/
@@ -754,6 +793,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
/**
* @param string[] $keys List of keys
* @param int $flags Bitfield of BagOStuff::WRITE_* constants
+ *
* @return bool Success
*/
protected function doDeleteMulti( array $keys, $flags = 0 ) {
@@ -761,6 +801,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
foreach ( $keys as $key ) {
$res = $this->doDelete( $key, $flags ) && $res;
}
+
return $res;
}
@@ -770,6 +811,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* @param string[] $keys List of keys
* @param int $exptime TTL or UNIX timestamp
* @param int $flags Bitfield of BagOStuff::WRITE_* constants (since 1.33)
+ *
* @return bool Success
*
* @since 1.34
@@ -782,6 +824,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* @param string[] $keys List of keys
* @param int $exptime TTL or UNIX timestamp
* @param int $flags Bitfield of BagOStuff::WRITE_* constants
+ *
* @return bool Success
*/
protected function doChangeTTLMulti( array $keys, $exptime, $flags = 0 ) {
@@ -798,6 +841,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
*
* @param string $key
* @param mixed $mainValue
+ *
* @return string|null|bool The combined string, false if missing, null on error
*/
final protected function resolveSegments( $key, $mainValue ) {
@@ -837,6 +881,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
*
* @param mixed $value
* @param int $flags
+ *
* @return bool
*/
private function useSegmentationWrapper( $value, $flags ) {
@@ -872,6 +917,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* @param int $exptime
* @param int $flags
* @param mixed|null &$ok Whether the entry is usable (e.g. no missing segments) [returned]
+ *
* @return mixed The entry (inline value, wrapped inline value, or wrapped segment list)
* @since 1.34
*/
@@ -912,6 +958,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
/**
* @param int|float $exptime
+ *
* @return bool Whether the expiry is non-infinite, and, negative or not a UNIX timestamp
* @since 1.34
*/
@@ -929,6 +976,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* - positive (>= 10 years): absolute UNIX timestamp; return this value
*
* @param int $exptime
+ *
* @return int Expiration timestamp or TTL_INDEFINITE for indefinite
* @since 1.34
*/
@@ -953,6 +1001,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* - positive (>= 10 years): absolute UNIX timestamp; return offset to current time
*
* @param int $exptime
+ *
* @return int Relative TTL or TTL_INDEFINITE for indefinite
* @since 1.34
*/
@@ -970,6 +1019,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
* Check if a value is an integer
*
* @param mixed $value
+ *
* @return bool
*/
final protected function isInteger( $value ) {
@@ -993,6 +1043,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
*/
public function getSegmentationSize() {
wfDeprecated( __METHOD__, '1.43' );
+
return $this->segmentationSize;
}
@@ -1001,6 +1052,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
*/
public function getSegmentedValueMaxSize() {
wfDeprecated( __METHOD__, '1.43' );
+
return $this->segmentedValueMaxSize;
}
@@ -1009,6 +1061,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
*
* @param mixed $value
* @param string $key
+ *
* @return string|int String/integer representation of value
* @since 1.35
*/
@@ -1063,8 +1116,8 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
if ( is_object( $entry ) ) {
// Note that Closure instances count as objects
if (
- !( $entry instanceof stdClass ) &&
- !( $entry instanceof JsonSerializable )
+ !( $entry instanceof \stdClass ) &&
+ !( $entry instanceof \JsonSerializable )
) {
$this->logger->warning(
"{class} value for '{cachekey}' at '$index'; serialization is suspect.",
@@ -1079,6 +1132,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
/**
* @param mixed $value
+ *
* @return string|int|false String/integer representation
* @note Special handling is usually needed for integers so incr()/decr() work
*/
@@ -1088,6 +1142,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
/**
* @param string|int|false $value
+ *
* @return mixed Original value or false on error
* @note Special handling is usually needed for integers so incr()/decr() work
*/
@@ -1104,6 +1159,7 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
/**
* @param string $key Key generated by BagOStuff::makeKeyInternal
+ *
* @return string A stats prefix to describe this class of key (e.g. "objectcache.file")
*/
private function determinekeyGroupForStats( $key ): string {
@@ -1192,3 +1248,6 @@ abstract class MediumSpecificBagOStuff extends BagOStuff {
}
}
}
+
+/** @deprecated class alias since 1.43 */
+class_alias( MediumSpecificBagOStuff::class, 'MediumSpecificBagOStuff' );
diff --git a/includes/libs/objectcache/MemcachedBagOStuff.php b/includes/libs/objectcache/MemcachedBagOStuff.php
index 5c208bf7d02e..aab6d412dd98 100644
--- a/includes/libs/objectcache/MemcachedBagOStuff.php
+++ b/includes/libs/objectcache/MemcachedBagOStuff.php
@@ -21,6 +21,12 @@
* @ingroup Cache
*/
+namespace Wikimedia\ObjectCache;
+
+use Exception;
+use InvalidArgumentException;
+use RuntimeException;
+
/**
* Base class for memcached clients.
*
@@ -54,8 +60,10 @@ abstract class MemcachedBagOStuff extends MediumSpecificBagOStuff {
*
* @since 1.27
* @see BagOStuff::makeKeyInternal
+ *
* @param string $keyspace
* @param string[]|int[] $components
+ *
* @return string
*/
protected function makeKeyInternal( $keyspace, $components ) {
@@ -101,6 +109,7 @@ abstract class MemcachedBagOStuff extends MediumSpecificBagOStuff {
* characters above the ASCII range.)
*
* @param string $key
+ *
* @return string
* @throws Exception
*/
@@ -114,6 +123,7 @@ abstract class MemcachedBagOStuff extends MediumSpecificBagOStuff {
/**
* @param string $key
+ *
* @return string
*/
protected function validateKeyAndPrependRoute( $key ) {
@@ -132,6 +142,7 @@ abstract class MemcachedBagOStuff extends MediumSpecificBagOStuff {
/**
* @param string $key
+ *
* @return string
*/
protected function stripRouteFromKey( $key ) {
@@ -148,6 +159,7 @@ abstract class MemcachedBagOStuff extends MediumSpecificBagOStuff {
/**
* @param int|float $exptime
+ *
* @return int
*/
protected function fixExpiry( $exptime ) {
@@ -181,6 +193,7 @@ abstract class MemcachedBagOStuff extends MediumSpecificBagOStuff {
* @param int $exptime
* @param int $step
* @param int $init
+ *
* @return bool True on success, false on failure
*/
abstract protected function doIncrWithInitAsync( $key, $exptime, $step, $init );
@@ -190,7 +203,11 @@ abstract class MemcachedBagOStuff extends MediumSpecificBagOStuff {
* @param int $exptime
* @param int $step
* @param int $init
+ *
* @return int|bool New value or false on failure
*/
abstract protected function doIncrWithInitSync( $key, $exptime, $step, $init );
}
+
+/** @deprecated class alias since 1.43 */
+class_alias( MemcachedBagOStuff::class, 'MemcachedBagOStuff' );
diff --git a/includes/libs/objectcache/MemcachedPeclBagOStuff.php b/includes/libs/objectcache/MemcachedPeclBagOStuff.php
index 079b5e3b32fa..75159f51c946 100644
--- a/includes/libs/objectcache/MemcachedPeclBagOStuff.php
+++ b/includes/libs/objectcache/MemcachedPeclBagOStuff.php
@@ -21,6 +21,11 @@
* @ingroup Cache
*/
+namespace Wikimedia\ObjectCache;
+
+use Memcached;
+use RuntimeException;
+use UnexpectedValueException;
use Wikimedia\ScopedCallback;
/**
@@ -46,6 +51,7 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
* option igbinary.compact_strings is off.
* - use_binary_protocol Whether to enable the binary protocol (default is ASCII)
* - allow_tcp_nagle_delay Whether to permit Nagle's algorithm for reducing packet count
+ *
* @param array $params
*/
public function __construct( $params ) {
@@ -86,6 +92,7 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
*
* @param Memcached $client
* @param array $params
+ *
* @throws RuntimeException
*/
private function initializeClient( Memcached $client, array $params ) {
@@ -160,6 +167,7 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
* This makes writes much faster.
*
* @param bool|int $flags
+ *
* @return ScopedCallback|null
*/
private function noReplyScope( $flags ) {
@@ -168,6 +176,7 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
}
$client = $this->client;
$client->setOption( Memcached::OPT_NOREPLY, true );
+
return new ScopedCallback( static function () use ( $client ) {
$client->setOption( Memcached::OPT_NOREPLY, false );
} );
@@ -265,6 +274,7 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
$this->checkResult( $key, $this->client->increment( $routeKey, $step ) );
ScopedCallback::consume( $scope );
$lastError = $this->getLastError( $watchPoint );
+
return !$lastError;
}
@@ -297,6 +307,7 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
*
* @param string|false $key The key used by the caller, or false if there wasn't one.
* @param mixed $result The return value
+ *
* @return mixed
*/
protected function checkResult( $key, $result ) {
@@ -343,6 +354,7 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
$this->logger->error( $msg, $logCtx );
$this->setLastError( $statusByCode[$code] ?? self::ERR_UNEXPECTED );
}
+
return $result;
}
@@ -369,6 +381,7 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
}
$res = $this->checkResult( false, $res );
+
return $res !== false ? $res : [];
}
@@ -387,6 +400,7 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
$result = @$this->client->setMulti( $dataByRouteKey, $exptime );
ScopedCallback::consume( $noReplyScope );
+
return $this->checkResult( false, $result );
}
@@ -454,3 +468,6 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
throw new UnexpectedValueException( __METHOD__ . ": got serializer '$serializer'." );
}
}
+
+/** @deprecated class alias since 1.43 */
+class_alias( MemcachedPeclBagOStuff::class, 'MemcachedPeclBagOStuff' );
diff --git a/includes/libs/objectcache/MemcachedPhpBagOStuff.php b/includes/libs/objectcache/MemcachedPhpBagOStuff.php
index 42c929e0ffe0..6b70dac27de6 100644
--- a/includes/libs/objectcache/MemcachedPhpBagOStuff.php
+++ b/includes/libs/objectcache/MemcachedPhpBagOStuff.php
@@ -21,6 +21,10 @@
* @ingroup Cache
*/
+namespace Wikimedia\ObjectCache;
+
+use MemcachedClient;
+
/**
* A wrapper class for the pure-PHP memcached client, exposing a BagOStuff interface.
*
@@ -62,10 +66,8 @@ class MemcachedPhpBagOStuff extends MemcachedBagOStuff {
$routeKey = $this->validateKeyAndPrependRoute( $key );
// T257003: only require "gets" (instead of "get") when a CAS token is needed
- $res = $getToken
- // @phan-suppress-next-line PhanTypeMismatchArgument False positive
- ? $this->client->get( $routeKey, $casToken )
- : $this->client->get( $routeKey );
+ $res = $getToken // @phan-suppress-next-line PhanTypeMismatchArgument False positive
+ ? $this->client->get( $routeKey, $casToken ) : $this->client->get( $routeKey );
if ( $this->client->_last_cmd_status !== self::ERR_NONE ) {
$this->setLastError( $this->client->_last_cmd_status );
@@ -127,6 +129,7 @@ class MemcachedPhpBagOStuff extends MemcachedBagOStuff {
$watchPoint = $this->watchErrors();
$this->client->add( $routeKey, $init - $step, $this->fixExpiry( $exptime ) );
$this->client->incr( $routeKey, $step );
+
return !$this->getLastError( $watchPoint );
}
@@ -188,3 +191,6 @@ class MemcachedPhpBagOStuff extends MemcachedBagOStuff {
return $this->isInteger( $value ) ? (int)$value : $this->client->unserialize( $value );
}
}
+
+/** @deprecated class alias since 1.43 */
+class_alias( MemcachedPhpBagOStuff::class, 'MemcachedPhpBagOStuff' );
diff --git a/includes/libs/objectcache/MultiWriteBagOStuff.php b/includes/libs/objectcache/MultiWriteBagOStuff.php
index 71deb15cfa48..e6042c05bcd3 100644
--- a/includes/libs/objectcache/MultiWriteBagOStuff.php
+++ b/includes/libs/objectcache/MultiWriteBagOStuff.php
@@ -20,6 +20,10 @@
* @file
* @ingroup Cache
*/
+
+namespace Wikimedia\ObjectCache;
+
+use InvalidArgumentException;
use Wikimedia\ObjectFactory\ObjectFactory;
/**
@@ -47,6 +51,7 @@ class MultiWriteBagOStuff extends BagOStuff {
/**
* @stable to call
+ *
* @param array $params
* - caches: A numbered array of either ObjectFactory::getObjectFromSpec
* arrays yielding BagOStuff objects or direct BagOStuff objects.
@@ -63,6 +68,7 @@ class MultiWriteBagOStuff extends BagOStuff {
* safe to use for modules when cached values: are immutable,
* invalidation uses logical TTLs, invalidation uses etag/timestamp
* validation against the DB, or merge() is used to handle races.
+ *
* @phan-param array{caches:array<int,array|BagOStuff>,replication:string} $params
* @throws InvalidArgumentException
*/
@@ -321,6 +327,7 @@ class MultiWriteBagOStuff extends BagOStuff {
* @param int $arg0Sig BagOStuff::A0_* constant describing argument 0
* @param int $rvSig BagOStuff::RV_* constant describing the return value
* @param array $args Method arguments
+ *
* @return mixed The result of calling the given method
*/
private function callKeyMethodOnTierCache( $index, $method, $arg0Sig, $rvSig, array $args ) {
@@ -335,6 +342,7 @@ class MultiWriteBagOStuff extends BagOStuff {
* @param int $arg0Sig BagOStuff::ARG0_* constant describing argument 0
* @param int $resSig BagOStuff::RES_* constant describing the return value
* @param array $args Method arguments
+ *
* @return mixed First synchronous result or false if any failed; null if all asynchronous
*/
private function callKeyWriteMethodOnTierCaches(
@@ -377,3 +385,6 @@ class MultiWriteBagOStuff extends BagOStuff {
return $res;
}
}
+
+/** @deprecated class alias since 1.43 */
+class_alias( MultiWriteBagOStuff::class, 'MultiWriteBagOStuff' );
diff --git a/includes/libs/objectcache/RESTBagOStuff.php b/includes/libs/objectcache/RESTBagOStuff.php
index 23c1c536ac3a..f8efad536226 100644
--- a/includes/libs/objectcache/RESTBagOStuff.php
+++ b/includes/libs/objectcache/RESTBagOStuff.php
@@ -1,5 +1,9 @@
<?php
+namespace Wikimedia\ObjectCache;
+
+use InvalidArgumentException;
+use LogicException;
use Psr\Log\LoggerInterface;
use Wikimedia\Http\MultiHttpClient;
@@ -103,24 +107,28 @@ class RESTBagOStuff extends MediumSpecificBagOStuff {
/**
* REST URL to use for storage.
+ *
* @var string
*/
private $url;
/**
* HTTP parameters: readHeaders, writeHeaders, deleteHeaders, writeMethod.
+ *
* @var array
*/
private $httpParams;
/**
* Optional serialization type to use. Allowed values: "PHP", "JSON".
+ *
* @var string
*/
private $serializationType;
/**
* Optional HMAC Key for protecting the serialized blob. If omitted no protection is done
+ *
* @var string
*/
private $hmacKey;
@@ -272,6 +280,7 @@ class RESTBagOStuff extends MediumSpecificBagOStuff {
* Processes the response body.
*
* @param string $body request body to process
+ *
* @return mixed|bool the processed body, or false on error
*/
private function decodeBody( $body ) {
@@ -306,6 +315,7 @@ class RESTBagOStuff extends MediumSpecificBagOStuff {
* Prepares the request body (the "value" portion of our key/value store) for transmission.
*
* @param string $body request body to prepare
+ *
* @return string the prepared body
* @throws LogicException
*/
@@ -375,3 +385,6 @@ class RESTBagOStuff extends MediumSpecificBagOStuff {
$this->setLastError( $rcode === 0 ? self::ERR_UNREACHABLE : self::ERR_UNEXPECTED );
}
}
+
+/** @deprecated class alias since 1.43 */
+class_alias( RESTBagOStuff::class, 'RESTBagOStuff' );
diff --git a/includes/libs/objectcache/RedisBagOStuff.php b/includes/libs/objectcache/RedisBagOStuff.php
index 622d866b4052..6faa2d793a05 100644
--- a/includes/libs/objectcache/RedisBagOStuff.php
+++ b/includes/libs/objectcache/RedisBagOStuff.php
@@ -20,6 +20,15 @@
* @file
*/
+namespace Wikimedia\ObjectCache;
+
+use ArrayUtils;
+use Exception;
+use Redis;
+use RedisConnectionPool;
+use RedisConnRef;
+use RedisException;
+
/**
* Redis-based caching module for redis server >= 2.6.12 and phpredis >= 2.2.4
*
@@ -66,6 +75,7 @@ class RedisBagOStuff extends MediumSpecificBagOStuff {
* consistent hashing algorithm). True by default. This has the
* potential to create consistency issues if a server is slow enough to
* flap, for example if it is in swap death.
+ *
* @param array $params
*/
public function __construct( $params ) {
@@ -440,6 +450,7 @@ LUA;
/**
* @param string[] $keys
+ *
* @return array ((server => redis handle wrapper), (server => key batch), success)
* @phan-return array{0:array<string,string[]>,1:array<string,RedisConnRef|Redis>,2:bool}
*/
@@ -504,6 +515,7 @@ LUA;
/**
* @param string $key
+ *
* @return RedisConnRef|Redis|null Redis handle wrapper for the key or null on failure
*/
protected function getConnection( $key ) {
@@ -527,6 +539,7 @@ LUA;
/**
* Log a fatal error
+ *
* @param string $msg
*/
protected function logError( $msg ) {
@@ -538,6 +551,7 @@ LUA;
* and protocol errors. Sometimes it also closes the connection, sometimes
* not. The safest response for us is to explicitly destroy the connection
* object and let it be reopened during the next request.
+ *
* @param RedisConnRef $conn
* @param RedisException $e
*/
@@ -548,6 +562,7 @@ LUA;
/**
* Send information about a single request to the debug log
+ *
* @param string $op
* @param string $keys
* @param string $server
@@ -557,3 +572,6 @@ LUA;
$this->debug( "$op($keys) on $server: " . ( $e ? "failure" : "success" ) );
}
}
+
+/** @deprecated class alias since 1.43 */
+class_alias( RedisBagOStuff::class, 'RedisBagOStuff' );
diff --git a/includes/libs/objectcache/ReplicatedBagOStuff.php b/includes/libs/objectcache/ReplicatedBagOStuff.php
index ad4a9e051de5..72033fe5be64 100644
--- a/includes/libs/objectcache/ReplicatedBagOStuff.php
+++ b/includes/libs/objectcache/ReplicatedBagOStuff.php
@@ -18,6 +18,8 @@
* @file
* @ingroup Cache
*/
+
+use Wikimedia\ObjectCache\BagOStuff;
use Wikimedia\ObjectFactory\ObjectFactory;
/**
diff --git a/includes/libs/objectcache/WinCacheBagOStuff.php b/includes/libs/objectcache/WinCacheBagOStuff.php
index f545d9c0521e..2e67bfbf0ca6 100644
--- a/includes/libs/objectcache/WinCacheBagOStuff.php
+++ b/includes/libs/objectcache/WinCacheBagOStuff.php
@@ -21,6 +21,8 @@
* @ingroup Cache
*/
+namespace Wikimedia\ObjectCache;
+
/**
* Wrapper for WinCache object caching functions; identical interface
* to the APC wrapper
@@ -168,3 +170,6 @@ class WinCacheBagOStuff extends MediumSpecificBagOStuff {
return $newValue;
}
}
+
+/** @deprecated class alias since 1.43 */
+class_alias( WinCacheBagOStuff::class, 'WinCacheBagOStuff' );
diff --git a/includes/libs/objectcache/wancache/WANObjectCache.php b/includes/libs/objectcache/wancache/WANObjectCache.php
index 57244d1ec05b..87e43782e5c5 100644
--- a/includes/libs/objectcache/wancache/WANObjectCache.php
+++ b/includes/libs/objectcache/wancache/WANObjectCache.php
@@ -25,6 +25,9 @@ use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
use Wikimedia\LightweightObjectStore\ExpirationAwareness;
use Wikimedia\LightweightObjectStore\StorageAwareness;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
+use Wikimedia\ObjectCache\IStoreKeyEncoder;
/**
* Multi-datacenter aware caching interface
diff --git a/includes/libs/rdbms/ChronologyProtector.php b/includes/libs/rdbms/ChronologyProtector.php
index 006ca5529954..6f3ae0d4f93c 100644
--- a/includes/libs/rdbms/ChronologyProtector.php
+++ b/includes/libs/rdbms/ChronologyProtector.php
@@ -19,12 +19,12 @@
*/
namespace Wikimedia\Rdbms;
-use BagOStuff;
-use EmptyBagOStuff;
use LogicException;
use Psr\Log\LoggerAwareInterface;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
/**
* Provide a given client with protection against visible database lag.
diff --git a/includes/libs/rdbms/database/DatabaseFactory.php b/includes/libs/rdbms/database/DatabaseFactory.php
index 2f2e9716b4d6..6d5e48ff031f 100644
--- a/includes/libs/rdbms/database/DatabaseFactory.php
+++ b/includes/libs/rdbms/database/DatabaseFactory.php
@@ -19,10 +19,10 @@
*/
namespace Wikimedia\Rdbms;
-use HashBagOStuff;
use InvalidArgumentException;
use Psr\Log\NullLogger;
use Throwable;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\RequestTimeout\CriticalSectionProvider;
/**
diff --git a/includes/libs/rdbms/database/replication/ReplicationReporter.php b/includes/libs/rdbms/database/replication/ReplicationReporter.php
index b92171f999fe..ef44e0a48c2f 100644
--- a/includes/libs/rdbms/database/replication/ReplicationReporter.php
+++ b/includes/libs/rdbms/database/replication/ReplicationReporter.php
@@ -19,8 +19,8 @@
*/
namespace Wikimedia\Rdbms\Replication;
-use BagOStuff;
use Psr\Log\LoggerInterface;
+use Wikimedia\ObjectCache\BagOStuff;
use Wikimedia\Rdbms\DBError;
use Wikimedia\Rdbms\DBPrimaryPos;
use Wikimedia\Rdbms\IDatabase;
diff --git a/includes/libs/rdbms/lbfactory/LBFactory.php b/includes/libs/rdbms/lbfactory/LBFactory.php
index 8a8a188d32e4..1768cbab7d3f 100644
--- a/includes/libs/rdbms/lbfactory/LBFactory.php
+++ b/includes/libs/rdbms/lbfactory/LBFactory.php
@@ -19,8 +19,6 @@
*/
namespace Wikimedia\Rdbms;
-use BagOStuff;
-use EmptyBagOStuff;
use Exception;
use Generator;
use Liuggio\StatsdClient\Factory\StatsdDataFactoryInterface;
@@ -30,6 +28,8 @@ use Psr\Log\NullLogger;
use RuntimeException;
use Throwable;
use WANObjectCache;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
use Wikimedia\RequestTimeout\CriticalSectionProvider;
use Wikimedia\ScopedCallback;
diff --git a/includes/libs/rdbms/loadbalancer/LoadBalancer.php b/includes/libs/rdbms/loadbalancer/LoadBalancer.php
index 42b94868d008..dd6e7c284b6f 100644
--- a/includes/libs/rdbms/loadbalancer/LoadBalancer.php
+++ b/includes/libs/rdbms/loadbalancer/LoadBalancer.php
@@ -20,8 +20,6 @@
namespace Wikimedia\Rdbms;
use ArrayUtils;
-use BagOStuff;
-use EmptyBagOStuff;
use InvalidArgumentException;
use Liuggio\StatsdClient\Factory\StatsdDataFactoryInterface;
use LogicException;
@@ -32,6 +30,8 @@ use RuntimeException;
use Throwable;
use UnexpectedValueException;
use WANObjectCache;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
use Wikimedia\ScopedCallback;
/**
diff --git a/includes/libs/rdbms/loadmonitor/ILoadMonitor.php b/includes/libs/rdbms/loadmonitor/ILoadMonitor.php
index bb8efe65e2ba..1092605baa7b 100644
--- a/includes/libs/rdbms/loadmonitor/ILoadMonitor.php
+++ b/includes/libs/rdbms/loadmonitor/ILoadMonitor.php
@@ -19,10 +19,10 @@
*/
namespace Wikimedia\Rdbms;
-use BagOStuff;
use Psr\Log\LoggerAwareInterface;
use StatsdAwareInterface;
use WANObjectCache;
+use Wikimedia\ObjectCache\BagOStuff;
/**
* Database load monitoring interface
diff --git a/includes/libs/rdbms/loadmonitor/LoadMonitor.php b/includes/libs/rdbms/loadmonitor/LoadMonitor.php
index 2056d0fd4bb8..7c6c987c566d 100644
--- a/includes/libs/rdbms/loadmonitor/LoadMonitor.php
+++ b/includes/libs/rdbms/loadmonitor/LoadMonitor.php
@@ -19,14 +19,14 @@
*/
namespace Wikimedia\Rdbms;
-use BagOStuff;
-use IStoreKeyEncoder;
use Liuggio\StatsdClient\Factory\StatsdDataFactoryInterface;
use NullStatsdDataFactory;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
use RuntimeException;
use WANObjectCache;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\IStoreKeyEncoder;
use Wikimedia\Rdbms\Platform\ISQLPlatform;
use Wikimedia\ScopedCallback;
diff --git a/includes/linker/LinkTargetStore.php b/includes/linker/LinkTargetStore.php
index 12d674e65d40..2065a9585ae8 100644
--- a/includes/linker/LinkTargetStore.php
+++ b/includes/linker/LinkTargetStore.php
@@ -20,12 +20,12 @@
namespace MediaWiki\Linker;
-use BagOStuff;
use InvalidArgumentException;
use MediaWiki\Title\TitleValue;
use RuntimeException;
use stdClass;
use WANObjectCache;
+use Wikimedia\ObjectCache\BagOStuff;
use Wikimedia\Rdbms\IConnectionProvider;
use Wikimedia\Rdbms\IDatabase;
diff --git a/includes/objectcache/ObjectCache.php b/includes/objectcache/ObjectCache.php
index 0f91972638e5..5d8c29d00041 100644
--- a/includes/objectcache/ObjectCache.php
+++ b/includes/objectcache/ObjectCache.php
@@ -22,6 +22,7 @@
*/
use MediaWiki\MediaWikiServices;
+use Wikimedia\ObjectCache\BagOStuff;
/**
* @see ObjectCacheFactory
diff --git a/includes/objectcache/ObjectCacheFactory.php b/includes/objectcache/ObjectCacheFactory.php
index 50099f427376..6c096a7c7e31 100644
--- a/includes/objectcache/ObjectCacheFactory.php
+++ b/includes/objectcache/ObjectCacheFactory.php
@@ -24,6 +24,14 @@ use MediaWiki\Http\Telemetry;
use MediaWiki\Logger\Spi;
use MediaWiki\MainConfigNames;
use MediaWiki\MediaWikiServices;
+use Wikimedia\ObjectCache\APCUBagOStuff;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
+use Wikimedia\ObjectCache\MemcachedBagOStuff;
+use Wikimedia\ObjectCache\MultiWriteBagOStuff;
+use Wikimedia\ObjectCache\RESTBagOStuff;
+use Wikimedia\ObjectCache\WinCacheBagOStuff;
use Wikimedia\Stats\StatsFactory;
/**
diff --git a/includes/objectcache/SqlBagOStuff.php b/includes/objectcache/SqlBagOStuff.php
index 66cd79b24302..4cc0e551e3d6 100644
--- a/includes/objectcache/SqlBagOStuff.php
+++ b/includes/objectcache/SqlBagOStuff.php
@@ -23,6 +23,7 @@
use MediaWiki\MediaWikiServices;
use Wikimedia\AtEase\AtEase;
+use Wikimedia\ObjectCache\MediumSpecificBagOStuff;
use Wikimedia\Rdbms\Blob;
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\DBConnectionError;
diff --git a/includes/page/DeletePage.php b/includes/page/DeletePage.php
index 61fdab2dfdae..24d775b5b59f 100644
--- a/includes/page/DeletePage.php
+++ b/includes/page/DeletePage.php
@@ -3,7 +3,6 @@
namespace MediaWiki\Page;
use BadMethodCallException;
-use BagOStuff;
use ChangeTags;
use Content;
use DeletePageJob;
@@ -40,6 +39,7 @@ use StatusValue;
use Wikimedia\IPUtils;
use Wikimedia\Message\ITextFormatter;
use Wikimedia\Message\MessageValue;
+use Wikimedia\ObjectCache\BagOStuff;
use Wikimedia\Rdbms\LBFactory;
use Wikimedia\RequestTimeout\TimeoutException;
use WikiPage;
diff --git a/includes/page/File/BadFileLookup.php b/includes/page/File/BadFileLookup.php
index 2c426e6c51f0..49bedd374bee 100644
--- a/includes/page/File/BadFileLookup.php
+++ b/includes/page/File/BadFileLookup.php
@@ -2,13 +2,13 @@
namespace MediaWiki\Page\File;
-use BagOStuff;
use MediaWiki\HookContainer\HookContainer;
use MediaWiki\HookContainer\HookRunner;
use MediaWiki\Linker\LinkTarget;
use MediaWiki\Title\MalformedTitleException;
use MediaWiki\Title\TitleParser;
use RepoGroup;
+use Wikimedia\ObjectCache\BagOStuff;
class BadFileLookup {
/** @var callable Returns contents of bad file list (see comment for isBadFile()) */
diff --git a/includes/page/PageCommandFactory.php b/includes/page/PageCommandFactory.php
index 6b7d83b26927..b1f61242c1e0 100644
--- a/includes/page/PageCommandFactory.php
+++ b/includes/page/PageCommandFactory.php
@@ -21,7 +21,6 @@
namespace MediaWiki\Page;
-use BagOStuff;
use ContentModelChange;
use JobQueueGroup;
use MediaWiki\Cache\BacklinkCacheFactory;
@@ -51,6 +50,7 @@ use MediaWiki\Watchlist\WatchedItemStoreInterface;
use Psr\Log\LoggerInterface;
use RepoGroup;
use Wikimedia\Message\ITextFormatter;
+use Wikimedia\ObjectCache\BagOStuff;
use Wikimedia\Rdbms\LBFactory;
use Wikimedia\Rdbms\ReadOnlyMode;
use WikiPage;
diff --git a/includes/parser/ParserCache.php b/includes/parser/ParserCache.php
index 4c444dc50734..b8d282d7db59 100644
--- a/includes/parser/ParserCache.php
+++ b/includes/parser/ParserCache.php
@@ -31,6 +31,9 @@ use MediaWiki\Parser\ParserCacheMetadata;
use MediaWiki\Parser\ParserOutput;
use MediaWiki\Title\TitleFactory;
use Psr\Log\LoggerInterface;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Stats\StatsFactory;
use Wikimedia\UUID\GlobalIdGenerator;
diff --git a/includes/parser/ParserCacheFactory.php b/includes/parser/ParserCacheFactory.php
index 6f5718c8178a..cca3fc6c1148 100644
--- a/includes/parser/ParserCacheFactory.php
+++ b/includes/parser/ParserCacheFactory.php
@@ -21,7 +21,6 @@
namespace MediaWiki\Parser;
-use BagOStuff;
use MediaWiki\Config\ServiceOptions;
use MediaWiki\HookContainer\HookContainer;
use MediaWiki\Json\JsonCodec;
@@ -31,6 +30,7 @@ use MediaWiki\Title\TitleFactory;
use ParserCache;
use Psr\Log\LoggerInterface;
use WANObjectCache;
+use Wikimedia\ObjectCache\BagOStuff;
use Wikimedia\Stats\StatsFactory;
use Wikimedia\UUID\GlobalIdGenerator;
diff --git a/includes/registration/ExtensionRegistry.php b/includes/registration/ExtensionRegistry.php
index e68d313ff7d3..1dfb16e28943 100644
--- a/includes/registration/ExtensionRegistry.php
+++ b/includes/registration/ExtensionRegistry.php
@@ -5,6 +5,7 @@ use MediaWiki\Settings\SettingsBuilder;
use MediaWiki\Shell\Shell;
use MediaWiki\ShellDisabledError;
use MediaWiki\WikiMap\WikiMap;
+use Wikimedia\ObjectCache\BagOStuff;
use Wikimedia\ScopedCallback;
/**
diff --git a/includes/registration/MissingExtensionException.php b/includes/registration/MissingExtensionException.php
index 8a05a9749bb8..d5682145b0ac 100644
--- a/includes/registration/MissingExtensionException.php
+++ b/includes/registration/MissingExtensionException.php
@@ -1,5 +1,6 @@
<?php
use MediaWiki\Html\TemplateParser;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
/**
* Thrown when ExtensionRegistry cannot open the extension.json or skin.json file.
diff --git a/includes/session/PHPSessionHandler.php b/includes/session/PHPSessionHandler.php
index 48266e1dc402..1f67a3b35771 100644
--- a/includes/session/PHPSessionHandler.php
+++ b/includes/session/PHPSessionHandler.php
@@ -23,13 +23,13 @@
namespace MediaWiki\Session;
-use BagOStuff;
use MediaWiki\MainConfigNames;
use MediaWiki\MediaWikiServices;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
use SessionHandlerInterface;
use Wikimedia\AtEase\AtEase;
+use Wikimedia\ObjectCache\BagOStuff;
use Wikimedia\PhpSessionSerializer;
/**
diff --git a/includes/session/SessionBackend.php b/includes/session/SessionBackend.php
index 93314a031cdf..eb8e3373271a 100644
--- a/includes/session/SessionBackend.php
+++ b/includes/session/SessionBackend.php
@@ -23,7 +23,6 @@
namespace MediaWiki\Session;
-use CachedBagOStuff;
use InvalidArgumentException;
use MediaWiki\Deferred\DeferredUpdates;
use MediaWiki\HookContainer\HookContainer;
@@ -35,6 +34,7 @@ use MediaWiki\User\User;
use MWRestrictions;
use Psr\Log\LoggerInterface;
use Wikimedia\AtEase\AtEase;
+use Wikimedia\ObjectCache\CachedBagOStuff;
/**
* This is the actual workhorse for Session.
diff --git a/includes/session/SessionManager.php b/includes/session/SessionManager.php
index 400da14d1c2b..f2487527bc81 100644
--- a/includes/session/SessionManager.php
+++ b/includes/session/SessionManager.php
@@ -23,8 +23,6 @@
namespace MediaWiki\Session;
-use BagOStuff;
-use CachedBagOStuff;
use InvalidArgumentException;
use LogicException;
use MediaWiki\Config\Config;
@@ -40,6 +38,8 @@ use MediaWiki\User\UserNameUtils;
use MWException;
use Psr\Log\LoggerInterface;
use Psr\Log\LogLevel;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\CachedBagOStuff;
/**
* This serves as the entry point to the MediaWiki session handling system.
diff --git a/includes/site/CachingSiteStore.php b/includes/site/CachingSiteStore.php
index 9d5526a27fc8..c7fb4dc1ddd2 100644
--- a/includes/site/CachingSiteStore.php
+++ b/includes/site/CachingSiteStore.php
@@ -20,7 +20,7 @@
namespace MediaWiki\Site;
-use BagOStuff;
+use Wikimedia\ObjectCache\BagOStuff;
/**
* Hold a configured list of sites (SiteList), with a caching layer.
diff --git a/includes/upload/UploadBase.php b/includes/upload/UploadBase.php
index 2fb326dd7714..c9226891a51c 100644
--- a/includes/upload/UploadBase.php
+++ b/includes/upload/UploadBase.php
@@ -39,6 +39,7 @@ use MediaWiki\User\User;
use MediaWiki\User\UserIdentity;
use Wikimedia\AtEase\AtEase;
use Wikimedia\FileBackend\FileBackend;
+use Wikimedia\ObjectCache\BagOStuff;
/**
* @defgroup Upload Upload related
diff --git a/includes/utils/FileContentsHasher.php b/includes/utils/FileContentsHasher.php
index cbeca3d4c775..fc97fb874550 100644
--- a/includes/utils/FileContentsHasher.php
+++ b/includes/utils/FileContentsHasher.php
@@ -1,4 +1,9 @@
<?php
+
+use Wikimedia\ObjectCache\APCUBagOStuff;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
+
/**
* Generate hash digests of file contents to help with cache invalidation.
*
diff --git a/includes/watchlist/WatchedItemStore.php b/includes/watchlist/WatchedItemStore.php
index cbe6ba5e5892..56c18f533bfb 100644
--- a/includes/watchlist/WatchedItemStore.php
+++ b/includes/watchlist/WatchedItemStore.php
@@ -2,9 +2,7 @@
namespace MediaWiki\Watchlist;
-use BagOStuff;
use DateInterval;
-use HashBagOStuff;
use JobQueueGroup;
use LogicException;
use MapCacheLRU;
@@ -21,6 +19,8 @@ use MediaWiki\User\UserIdentity;
use MediaWiki\Utils\MWTimestamp;
use stdClass;
use Wikimedia\Assert\Assert;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\ParamValidator\TypeDef\ExpiryDef;
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\ILBFactory;
diff --git a/maintenance/benchmarks/benchmarkLruHash.php b/maintenance/benchmarks/benchmarkLruHash.php
index 764a20f76b8e..e2e374cf9424 100644
--- a/maintenance/benchmarks/benchmarkLruHash.php
+++ b/maintenance/benchmarks/benchmarkLruHash.php
@@ -19,6 +19,8 @@
* @ingroup Benchmark
*/
+use Wikimedia\ObjectCache\HashBagOStuff;
+
require_once __DIR__ . '/../includes/Benchmarker.php';
/**
diff --git a/maintenance/mctest.php b/maintenance/mctest.php
index 08a57101e6e4..4404d133b9db 100644
--- a/maintenance/mctest.php
+++ b/maintenance/mctest.php
@@ -23,6 +23,7 @@
*/
use MediaWiki\MainConfigNames;
+use Wikimedia\ObjectCache\BagOStuff;
require_once __DIR__ . '/Maintenance.php';
diff --git a/tests/phpunit/MediaWikiIntegrationTestCase.php b/tests/phpunit/MediaWikiIntegrationTestCase.php
index d6a2c2a51b34..e805c1b82508 100644
--- a/tests/phpunit/MediaWikiIntegrationTestCase.php
+++ b/tests/phpunit/MediaWikiIntegrationTestCase.php
@@ -32,6 +32,8 @@ use MediaWiki\User\User;
use MediaWiki\User\UserIdentityValue;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Rdbms\ChangedTablesTracker;
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\IDatabase;
diff --git a/tests/phpunit/includes/ResourceLoader/MessageBlobStoreTest.php b/tests/phpunit/includes/ResourceLoader/MessageBlobStoreTest.php
index 4ddaa7257171..1feea962e849 100644
--- a/tests/phpunit/includes/ResourceLoader/MessageBlobStoreTest.php
+++ b/tests/phpunit/includes/ResourceLoader/MessageBlobStoreTest.php
@@ -2,13 +2,13 @@
namespace MediaWiki\Tests\ResourceLoader;
-use HashBagOStuff;
use MediaWiki\ResourceLoader\MessageBlobStore;
use MediaWiki\ResourceLoader\ResourceLoader;
use MediaWikiCoversValidator;
use PHPUnit\Framework\TestCase;
use Psr\Log\NullLogger;
use WANObjectCache;
+use Wikimedia\ObjectCache\HashBagOStuff;
/**
* @group ResourceLoader
diff --git a/tests/phpunit/includes/Revision/RevisionStoreDbTest.php b/tests/phpunit/includes/Revision/RevisionStoreDbTest.php
index 8e078bb0d4a9..8a2cdf957d57 100644
--- a/tests/phpunit/includes/Revision/RevisionStoreDbTest.php
+++ b/tests/phpunit/includes/Revision/RevisionStoreDbTest.php
@@ -4,7 +4,6 @@ namespace MediaWiki\Tests\Revision;
use Content;
use Exception;
-use HashBagOStuff;
use IDBAccessObject;
use InvalidArgumentException;
use MediaWiki\CommentStore\CommentStoreComment;
@@ -39,6 +38,7 @@ use PHPUnit\Framework\MockObject\MockObject;
use StatusValue;
use WANObjectCache;
use Wikimedia\Assert\PreconditionException;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\DatabaseDomain;
use Wikimedia\Rdbms\DatabaseSqlite;
diff --git a/tests/phpunit/includes/SiteStats/SiteStatsTest.php b/tests/phpunit/includes/SiteStats/SiteStatsTest.php
index 7e11210bd4b5..82c146c9244e 100644
--- a/tests/phpunit/includes/SiteStats/SiteStatsTest.php
+++ b/tests/phpunit/includes/SiteStats/SiteStatsTest.php
@@ -1,6 +1,7 @@
<?php
use MediaWiki\SiteStats\SiteStats;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Rdbms\Platform\ISQLPlatform;
/**
diff --git a/tests/phpunit/includes/Storage/DerivedPageDataUpdaterTest.php b/tests/phpunit/includes/Storage/DerivedPageDataUpdaterTest.php
index dce9a92fcfdd..b3d531c476e6 100644
--- a/tests/phpunit/includes/Storage/DerivedPageDataUpdaterTest.php
+++ b/tests/phpunit/includes/Storage/DerivedPageDataUpdaterTest.php
@@ -2,7 +2,6 @@
namespace MediaWiki\Tests\Storage;
-use BagOStuff;
use Content;
use ContentHandler;
use DummyContentHandlerForTesting;
@@ -38,6 +37,7 @@ use MediaWikiIntegrationTestCase;
use MockTitleTrait;
use ParserOptions;
use PHPUnit\Framework\MockObject\MockObject;
+use Wikimedia\ObjectCache\BagOStuff;
use Wikimedia\Rdbms\Platform\ISQLPlatform;
use Wikimedia\TestingAccessWrapper;
use Wikimedia\Timestamp\ConvertibleTimestamp;
diff --git a/tests/phpunit/includes/Storage/NameTableStoreTest.php b/tests/phpunit/includes/Storage/NameTableStoreTest.php
index 2322512585a4..3a2b4cf2c5ba 100644
--- a/tests/phpunit/includes/Storage/NameTableStoreTest.php
+++ b/tests/phpunit/includes/Storage/NameTableStoreTest.php
@@ -2,9 +2,6 @@
namespace MediaWiki\Tests\Storage;
-use BagOStuff;
-use EmptyBagOStuff;
-use HashBagOStuff;
use MediaWiki\Storage\NameTableAccessException;
use MediaWiki\Storage\NameTableStore;
use MediaWikiIntegrationTestCase;
@@ -12,6 +9,9 @@ use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\NullLogger;
use RuntimeException;
use WANObjectCache;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\InsertQueryBuilder;
use Wikimedia\Rdbms\LoadBalancer;
diff --git a/tests/phpunit/includes/Storage/SqlBlobStoreTest.php b/tests/phpunit/includes/Storage/SqlBlobStoreTest.php
index e04f8169853d..718e874437c2 100644
--- a/tests/phpunit/includes/Storage/SqlBlobStoreTest.php
+++ b/tests/phpunit/includes/Storage/SqlBlobStoreTest.php
@@ -5,7 +5,6 @@ namespace MediaWiki\Tests\Storage;
use ConcatenatedGzipHistoryBlob;
use ExternalStoreAccess;
use ExternalStoreFactory;
-use HashBagOStuff;
use InvalidArgumentException;
use MediaWiki\Storage\BadBlobException;
use MediaWiki\Storage\BlobAccessException;
@@ -13,6 +12,7 @@ use MediaWiki\Storage\SqlBlobStore;
use MediaWikiIntegrationTestCase;
use StatusValue;
use WANObjectCache;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Rdbms\LoadBalancer;
/**
diff --git a/tests/phpunit/includes/api/ApiStashEditTest.php b/tests/phpunit/includes/api/ApiStashEditTest.php
index 9c7cbf3006c8..06fca075112a 100644
--- a/tests/phpunit/includes/api/ApiStashEditTest.php
+++ b/tests/phpunit/includes/api/ApiStashEditTest.php
@@ -2,7 +2,6 @@
namespace MediaWiki\Tests\Api;
-use HashBagOStuff;
use MediaWiki\Content\CssContent;
use MediaWiki\Storage\PageEditStash;
use MediaWiki\Tests\User\TempUser\TempUserTestTrait;
@@ -12,6 +11,7 @@ use MediaWiki\User\UserIdentity;
use MediaWiki\User\UserRigorOptions;
use Psr\Log\NullLogger;
use stdClass;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Stats\StatsFactory;
use Wikimedia\TestingAccessWrapper;
use Wikimedia\Timestamp\ConvertibleTimestamp;
diff --git a/tests/phpunit/includes/auth/AuthManagerTest.php b/tests/phpunit/includes/auth/AuthManagerTest.php
index b71c99315cfc..f257ca977f22 100644
--- a/tests/phpunit/includes/auth/AuthManagerTest.php
+++ b/tests/phpunit/includes/auth/AuthManagerTest.php
@@ -7,7 +7,6 @@ use DomainException;
use DummySessionProvider;
use DynamicPropertyTestHelper;
use Exception;
-use HashBagOStuff;
use InvalidArgumentException;
use Language;
use LogicException;
@@ -75,6 +74,7 @@ use StatusValue;
use TestLogger;
use TestUser;
use UnexpectedValueException;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\ObjectFactory\ObjectFactory;
use Wikimedia\Rdbms\ILoadBalancer;
use Wikimedia\Rdbms\ReadOnlyMode;
diff --git a/tests/phpunit/includes/auth/ThrottlePreAuthenticationProviderTest.php b/tests/phpunit/includes/auth/ThrottlePreAuthenticationProviderTest.php
index 79a98e6dd815..1ef33658f5cb 100644
--- a/tests/phpunit/includes/auth/ThrottlePreAuthenticationProviderTest.php
+++ b/tests/phpunit/includes/auth/ThrottlePreAuthenticationProviderTest.php
@@ -2,7 +2,6 @@
namespace MediaWiki\Tests\Auth;
-use HashBagOStuff;
use MediaWiki\Auth\AuthenticationResponse;
use MediaWiki\Auth\ThrottlePreAuthenticationProvider;
use MediaWiki\Auth\UsernameAuthenticationRequest;
@@ -15,6 +14,7 @@ use Psr\Log\LogLevel;
use StatusValue;
use stdClass;
use TestLogger;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\TestingAccessWrapper;
/**
diff --git a/tests/phpunit/includes/auth/ThrottlerTest.php b/tests/phpunit/includes/auth/ThrottlerTest.php
index 619551a04c7c..b687319fb60f 100644
--- a/tests/phpunit/includes/auth/ThrottlerTest.php
+++ b/tests/phpunit/includes/auth/ThrottlerTest.php
@@ -2,8 +2,6 @@
namespace MediaWiki\Tests\Auth;
-use BagOStuff;
-use HashBagOStuff;
use InvalidArgumentException;
use MediaWiki\Auth\Throttler;
use MediaWiki\MainConfigNames;
@@ -11,6 +9,8 @@ use MediaWikiIntegrationTestCase;
use Psr\Log\AbstractLogger;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\TestingAccessWrapper;
/**
diff --git a/tests/phpunit/includes/cache/LinkCacheTest.php b/tests/phpunit/includes/cache/LinkCacheTest.php
index ea987ce33b15..aafc858b5273 100644
--- a/tests/phpunit/includes/cache/LinkCacheTest.php
+++ b/tests/phpunit/includes/cache/LinkCacheTest.php
@@ -5,6 +5,8 @@ use MediaWiki\Page\PageReference;
use MediaWiki\Page\PageReferenceValue;
use MediaWiki\Title\Title;
use MediaWiki\Title\TitleValue;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
/**
* @group Database
diff --git a/tests/phpunit/includes/db/DatabaseTestHelper.php b/tests/phpunit/includes/db/DatabaseTestHelper.php
index 357dac7bc8a2..9e09d5861712 100644
--- a/tests/phpunit/includes/db/DatabaseTestHelper.php
+++ b/tests/phpunit/includes/db/DatabaseTestHelper.php
@@ -3,6 +3,7 @@
use MediaWiki\Tests\Unit\Libs\Rdbms\AddQuoterMock;
use MediaWiki\Tests\Unit\Libs\Rdbms\SQLPlatformTestHelper;
use Psr\Log\NullLogger;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\Database\DatabaseFlags;
use Wikimedia\Rdbms\DatabaseDomain;
diff --git a/tests/phpunit/includes/db/LBFactoryTest.php b/tests/phpunit/includes/db/LBFactoryTest.php
index 67a5a450e715..2862a8472f3b 100644
--- a/tests/phpunit/includes/db/LBFactoryTest.php
+++ b/tests/phpunit/includes/db/LBFactoryTest.php
@@ -22,6 +22,7 @@
*/
use MediaWiki\WikiMap\WikiMap;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Rdbms\ChronologyProtector;
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\DatabaseDomain;
diff --git a/tests/phpunit/includes/filebackend/FileBackendGroupIntegrationTest.php b/tests/phpunit/includes/filebackend/FileBackendGroupIntegrationTest.php
index 906d166aea19..32c7c41a2258 100644
--- a/tests/phpunit/includes/filebackend/FileBackendGroupIntegrationTest.php
+++ b/tests/phpunit/includes/filebackend/FileBackendGroupIntegrationTest.php
@@ -5,6 +5,7 @@ use MediaWiki\FileBackend\LockManager\LockManagerGroupFactory;
use MediaWiki\MainConfigNames;
use MediaWiki\Tests\Unit\DummyServicesTrait;
use MediaWiki\WikiMap\WikiMap;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
/**
* @coversDefaultClass \MediaWiki\FileBackend\FileBackendGroup
diff --git a/tests/phpunit/includes/filerepo/LocalRepoTest.php b/tests/phpunit/includes/filerepo/LocalRepoTest.php
index f4667256ec0c..dea55e59c586 100644
--- a/tests/phpunit/includes/filerepo/LocalRepoTest.php
+++ b/tests/phpunit/includes/filerepo/LocalRepoTest.php
@@ -4,6 +4,8 @@ use MediaWiki\MainConfigNames;
use MediaWiki\Status\Status;
use MediaWiki\Title\Title;
use MediaWiki\WikiMap\WikiMap;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
/**
* @group Database
diff --git a/tests/phpunit/includes/filerepo/file/LocalFileTest.php b/tests/phpunit/includes/filerepo/file/LocalFileTest.php
index 85364f1536c0..b1463d7ee348 100644
--- a/tests/phpunit/includes/filerepo/file/LocalFileTest.php
+++ b/tests/phpunit/includes/filerepo/file/LocalFileTest.php
@@ -12,6 +12,7 @@ use MediaWiki\Tests\Unit\Permissions\MockAuthorityTrait;
use MediaWiki\Title\Title;
use MediaWiki\User\UserIdentity;
use MediaWiki\WikiMap\WikiMap;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\TestingAccessWrapper;
/**
diff --git a/tests/phpunit/includes/jobqueue/JobQueueTest.php b/tests/phpunit/includes/jobqueue/JobQueueTest.php
index fff6eb13ce9c..ae82ac66ca90 100644
--- a/tests/phpunit/includes/jobqueue/JobQueueTest.php
+++ b/tests/phpunit/includes/jobqueue/JobQueueTest.php
@@ -2,6 +2,7 @@
use MediaWiki\MediaWikiServices;
use MediaWiki\WikiMap\WikiMap;
+use Wikimedia\ObjectCache\HashBagOStuff;
/**
* @group JobQueue
diff --git a/tests/phpunit/includes/libs/objectcache/APCUBagOStuffTest.php b/tests/phpunit/includes/libs/objectcache/APCUBagOStuffTest.php
index 150c77a66090..b67cd2fd3b9c 100644
--- a/tests/phpunit/includes/libs/objectcache/APCUBagOStuffTest.php
+++ b/tests/phpunit/includes/libs/objectcache/APCUBagOStuffTest.php
@@ -1,8 +1,10 @@
<?php
+use Wikimedia\ObjectCache\APCUBagOStuff;
+
/**
* @group BagOStuff
- * @covers \APCUBagOStuff
+ * @covers \Wikimedia\ObjectCache\APCUBagOStuff
* @requires extension apcu
*/
class APCUBagOStuffTest extends BagOStuffTestBase {
diff --git a/tests/phpunit/includes/libs/objectcache/BagOStuffTestBase.php b/tests/phpunit/includes/libs/objectcache/BagOStuffTestBase.php
index fe8f334eb6c7..8547ffe3bf13 100644
--- a/tests/phpunit/includes/libs/objectcache/BagOStuffTestBase.php
+++ b/tests/phpunit/includes/libs/objectcache/BagOStuffTestBase.php
@@ -2,14 +2,17 @@
use MediaWiki\Deferred\DeferredUpdates;
use Wikimedia\LightweightObjectStore\StorageAwareness;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
+use Wikimedia\ObjectCache\MultiWriteBagOStuff;
use Wikimedia\ScopedCallback;
use Wikimedia\TestingAccessWrapper;
/**
* @author Matthias Mullie <mmullie@wikimedia.org>
* @group BagOStuff
- * @covers \BagOStuff
- * @covers \MediumSpecificBagOStuff
+ * @covers \Wikimedia\ObjectCache\BagOStuff
+ * @covers \Wikimedia\ObjectCache\MediumSpecificBagOStuff
*/
abstract class BagOStuffTestBase extends MediaWikiIntegrationTestCase {
/** @var BagOStuff */
diff --git a/tests/phpunit/includes/libs/objectcache/HashBagOStuffIntegrationTest.php b/tests/phpunit/includes/libs/objectcache/HashBagOStuffIntegrationTest.php
index 64141be11380..fa9abca549ad 100644
--- a/tests/phpunit/includes/libs/objectcache/HashBagOStuffIntegrationTest.php
+++ b/tests/phpunit/includes/libs/objectcache/HashBagOStuffIntegrationTest.php
@@ -1,8 +1,10 @@
<?php
+use Wikimedia\ObjectCache\HashBagOStuff;
+
/**
* @group BagOStuff
- * @covers \HashBagOStuff
+ * @covers \Wikimedia\ObjectCache\HashBagOStuff
*/
class HashBagOStuffIntegrationTest extends BagOStuffTestBase {
protected function newCacheInstance() {
diff --git a/tests/phpunit/includes/libs/objectcache/MemcachedPeclBagOStuffIntegrationTest.php b/tests/phpunit/includes/libs/objectcache/MemcachedPeclBagOStuffIntegrationTest.php
index d1acf9e084b9..3c114ef32084 100644
--- a/tests/phpunit/includes/libs/objectcache/MemcachedPeclBagOStuffIntegrationTest.php
+++ b/tests/phpunit/includes/libs/objectcache/MemcachedPeclBagOStuffIntegrationTest.php
@@ -4,7 +4,7 @@ use MediaWiki\MediaWikiServices;
/**
* @group BagOStuff
- * @covers \MemcachedPeclBagOStuff
+ * @covers \Wikimedia\ObjectCache\MemcachedPeclBagOStuff
* @requires extension memcached
*/
class MemcachedPeclBagOStuffIntegrationTest extends BagOStuffTestBase {
diff --git a/tests/phpunit/includes/libs/objectcache/MemcachedPhpBagOStuffIntegrationTest.php b/tests/phpunit/includes/libs/objectcache/MemcachedPhpBagOStuffIntegrationTest.php
index 1f9dcb25e657..fb28a8ebaeaa 100644
--- a/tests/phpunit/includes/libs/objectcache/MemcachedPhpBagOStuffIntegrationTest.php
+++ b/tests/phpunit/includes/libs/objectcache/MemcachedPhpBagOStuffIntegrationTest.php
@@ -2,7 +2,7 @@
/**
* @group BagOStuff
- * @covers \MemcachedPhpBagOStuff
+ * @covers \Wikimedia\ObjectCache\MemcachedPhpBagOStuff
*/
class MemcachedPhpBagOStuffIntegrationTest extends BagOStuffTestBase {
protected function newCacheInstance() {
diff --git a/tests/phpunit/includes/libs/objectcache/MultiWriteBagOStuffTest.php b/tests/phpunit/includes/libs/objectcache/MultiWriteBagOStuffTest.php
index 15b7e6551c9b..1bbe73f46eb1 100644
--- a/tests/phpunit/includes/libs/objectcache/MultiWriteBagOStuffTest.php
+++ b/tests/phpunit/includes/libs/objectcache/MultiWriteBagOStuffTest.php
@@ -1,10 +1,12 @@
<?php
use Wikimedia\LightweightObjectStore\StorageAwareness;
+use Wikimedia\ObjectCache\HashBagOStuff;
+use Wikimedia\ObjectCache\MultiWriteBagOStuff;
use Wikimedia\TestingAccessWrapper;
/**
- * @covers \MultiWriteBagOStuff
+ * @covers \Wikimedia\ObjectCache\MultiWriteBagOStuff
* @group BagOStuff
* @group Database
*/
diff --git a/tests/phpunit/includes/libs/objectcache/RESTBagOStuffIntegrationTest.php b/tests/phpunit/includes/libs/objectcache/RESTBagOStuffIntegrationTest.php
index ff5ffba13cd5..0670322bd95c 100644
--- a/tests/phpunit/includes/libs/objectcache/RESTBagOStuffIntegrationTest.php
+++ b/tests/phpunit/includes/libs/objectcache/RESTBagOStuffIntegrationTest.php
@@ -1,8 +1,10 @@
<?php
+use Wikimedia\ObjectCache\RESTBagOStuff;
+
/**
* @group BagOStuff
- * @covers \RESTBagOStuff
+ * @covers \Wikimedia\ObjectCache\RESTBagOStuff
*/
class RESTBagOStuffIntegrationTest extends BagOStuffTestBase {
protected function newCacheInstance() {
diff --git a/tests/phpunit/includes/libs/objectcache/RedisBagOStuffIntegrationTest.php b/tests/phpunit/includes/libs/objectcache/RedisBagOStuffIntegrationTest.php
index 80e3acf94ef7..fa1c30efceb8 100644
--- a/tests/phpunit/includes/libs/objectcache/RedisBagOStuffIntegrationTest.php
+++ b/tests/phpunit/includes/libs/objectcache/RedisBagOStuffIntegrationTest.php
@@ -1,8 +1,10 @@
<?php
+use Wikimedia\ObjectCache\RedisBagOStuff;
+
/**
* @group BagOStuff
- * @covers \RedisBagOStuff
+ * @covers \Wikimedia\ObjectCache\RedisBagOStuff
* @requires extension redis
*/
class RedisBagOStuffIntegrationTest extends BagOStuffTestBase {
diff --git a/tests/phpunit/includes/libs/objectcache/WinCacheBagOStuffIntegrationTest.php b/tests/phpunit/includes/libs/objectcache/WinCacheBagOStuffIntegrationTest.php
index dd9cdc67ff39..4052037b4b24 100644
--- a/tests/phpunit/includes/libs/objectcache/WinCacheBagOStuffIntegrationTest.php
+++ b/tests/phpunit/includes/libs/objectcache/WinCacheBagOStuffIntegrationTest.php
@@ -2,7 +2,7 @@
/**
* @group BagOStuff
- * @covers \WinCacheBagOStuff
+ * @covers \Wikimedia\ObjectCache\WinCacheBagOStuff
* @requires extension wincache
*/
class WinCacheBagOStuffIntegrationTest extends BagOStuffTestBase {
diff --git a/tests/phpunit/includes/objectcache/ObjectCacheTest.php b/tests/phpunit/includes/objectcache/ObjectCacheTest.php
index ca4e1d914301..4beae840ca4d 100644
--- a/tests/phpunit/includes/objectcache/ObjectCacheTest.php
+++ b/tests/phpunit/includes/objectcache/ObjectCacheTest.php
@@ -1,6 +1,8 @@
<?php
use MediaWiki\MainConfigNames;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Rdbms\DatabaseDomain;
use Wikimedia\TestingAccessWrapper;
diff --git a/tests/phpunit/includes/page/ParserOutputAccessTest.php b/tests/phpunit/includes/page/ParserOutputAccessTest.php
index d58dbbcb1474..542cb6aa9bf4 100644
--- a/tests/phpunit/includes/page/ParserOutputAccessTest.php
+++ b/tests/phpunit/includes/page/ParserOutputAccessTest.php
@@ -22,6 +22,8 @@ use MediaWiki\Status\Status;
use MediaWiki\Title\TitleFormatter;
use MediaWiki\Utils\MWTimestamp;
use Psr\Log\NullLogger;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Rdbms\ChronologyProtector;
use Wikimedia\Rdbms\ILBFactory;
use Wikimedia\Stats\StatsFactory;
diff --git a/tests/phpunit/includes/parser/ParserCacheTest.php b/tests/phpunit/includes/parser/ParserCacheTest.php
index 0299f57b22eb..86b9a67f615d 100644
--- a/tests/phpunit/includes/parser/ParserCacheTest.php
+++ b/tests/phpunit/includes/parser/ParserCacheTest.php
@@ -2,10 +2,7 @@
namespace MediaWiki\Tests\Parser;
-use BagOStuff;
use CacheTime;
-use EmptyBagOStuff;
-use HashBagOStuff;
use InvalidArgumentException;
use MediaWiki\HookContainer\HookContainer;
use MediaWiki\Json\JsonCodec;
@@ -26,6 +23,9 @@ use Psr\Log\LoggerInterface;
use Psr\Log\LogLevel;
use Psr\Log\NullLogger;
use TestLogger;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Stats\StatsFactory;
use Wikimedia\TestingAccessWrapper;
use Wikimedia\UUID\GlobalIdGenerator;
diff --git a/tests/phpunit/includes/parser/PreprocessorTest.php b/tests/phpunit/includes/parser/PreprocessorTest.php
index 03e30776f013..9063ac15e118 100644
--- a/tests/phpunit/includes/parser/PreprocessorTest.php
+++ b/tests/phpunit/includes/parser/PreprocessorTest.php
@@ -2,7 +2,6 @@
namespace MediaWiki\Tests\Parser;
-use HashBagOStuff;
use MediaWiki\Parser\Parser;
use MediaWiki\User\User;
use MediaWikiIntegrationTestCase;
@@ -10,6 +9,7 @@ use ParserOptions;
use Preprocessor;
use Preprocessor_Hash;
use WANObjectCache;
+use Wikimedia\ObjectCache\HashBagOStuff;
/**
* @covers \Preprocessor
diff --git a/tests/phpunit/includes/parser/RevisionOutputCacheTest.php b/tests/phpunit/includes/parser/RevisionOutputCacheTest.php
index 97f551e93fd2..f2db02345c8e 100644
--- a/tests/phpunit/includes/parser/RevisionOutputCacheTest.php
+++ b/tests/phpunit/includes/parser/RevisionOutputCacheTest.php
@@ -2,8 +2,6 @@
namespace MediaWiki\Tests\Parser;
-use BagOStuff;
-use HashBagOStuff;
use InvalidArgumentException;
use MediaWiki\Json\JsonCodec;
use MediaWiki\Page\PageIdentity;
@@ -22,6 +20,8 @@ use Psr\Log\LogLevel;
use Psr\Log\NullLogger;
use TestLogger;
use WANObjectCache;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Stats\StatsFactory;
use Wikimedia\TestingAccessWrapper;
use Wikimedia\UUID\GlobalIdGenerator;
diff --git a/tests/phpunit/includes/poolcounter/PoolWorkArticleViewCurrentTest.php b/tests/phpunit/includes/poolcounter/PoolWorkArticleViewCurrentTest.php
index 84ca72d86619..25233125bf7a 100644
--- a/tests/phpunit/includes/poolcounter/PoolWorkArticleViewCurrentTest.php
+++ b/tests/phpunit/includes/poolcounter/PoolWorkArticleViewCurrentTest.php
@@ -6,6 +6,7 @@ use MediaWiki\PoolCounter\PoolWorkArticleViewCurrent;
use MediaWiki\Revision\RevisionRecord;
use MediaWiki\Status\Status;
use Psr\Log\NullLogger;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Rdbms\ChronologyProtector;
use Wikimedia\Stats\StatsFactory;
use Wikimedia\TestingAccessWrapper;
diff --git a/tests/phpunit/includes/poolcounter/PoolWorkArticleViewOldTest.php b/tests/phpunit/includes/poolcounter/PoolWorkArticleViewOldTest.php
index a2aac43fb0ca..0411485023d8 100644
--- a/tests/phpunit/includes/poolcounter/PoolWorkArticleViewOldTest.php
+++ b/tests/phpunit/includes/poolcounter/PoolWorkArticleViewOldTest.php
@@ -6,6 +6,8 @@ use MediaWiki\PoolCounter\PoolWorkArticleViewOld;
use MediaWiki\Revision\RevisionRecord;
use MediaWiki\Status\Status;
use Psr\Log\NullLogger;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Stats\StatsFactory;
use Wikimedia\UUID\GlobalIdGenerator;
diff --git a/tests/phpunit/includes/registration/ExtensionRegistrationTest.php b/tests/phpunit/includes/registration/ExtensionRegistrationTest.php
index a46be60ed75f..3c0f759a60a4 100644
--- a/tests/phpunit/includes/registration/ExtensionRegistrationTest.php
+++ b/tests/phpunit/includes/registration/ExtensionRegistrationTest.php
@@ -5,11 +5,11 @@ namespace MediaWiki\Tests\Registration;
use AutoLoader;
use ExtensionRegistry;
use Generator;
-use HashBagOStuff;
use MediaWiki\Settings\Config\ArrayConfigBuilder;
use MediaWiki\Settings\Config\PhpIniSink;
use MediaWiki\Settings\SettingsBuilder;
use MediaWikiIntegrationTestCase;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\TestingAccessWrapper;
/**
diff --git a/tests/phpunit/includes/session/SessionBackendTest.php b/tests/phpunit/includes/session/SessionBackendTest.php
index fa0020d3dfc4..69a34222eb97 100644
--- a/tests/phpunit/includes/session/SessionBackendTest.php
+++ b/tests/phpunit/includes/session/SessionBackendTest.php
@@ -3,7 +3,6 @@
namespace MediaWiki\Tests\Session;
use BadMethodCallException;
-use CachedBagOStuff;
use DummySessionProvider;
use InvalidArgumentException;
use MediaWiki\Config\Config;
@@ -23,6 +22,7 @@ use MediaWiki\User\User;
use MediaWikiIntegrationTestCase;
use Psr\Log\NullLogger;
use UnexpectedValueException;
+use Wikimedia\ObjectCache\CachedBagOStuff;
use Wikimedia\ScopedCallback;
use Wikimedia\TestingAccessWrapper;
diff --git a/tests/phpunit/includes/session/TestBagOStuff.php b/tests/phpunit/includes/session/TestBagOStuff.php
index 50ac52bc810b..3e9cfe75d784 100644
--- a/tests/phpunit/includes/session/TestBagOStuff.php
+++ b/tests/phpunit/includes/session/TestBagOStuff.php
@@ -2,10 +2,10 @@
namespace MediaWiki\Tests\Session;
-use CachedBagOStuff;
-use HashBagOStuff;
use MediaWiki\MainConfigNames;
use MediaWiki\MediaWikiServices;
+use Wikimedia\ObjectCache\CachedBagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
/**
* BagOStuff with utility functions for MediaWiki\\Session\\* testing
diff --git a/tests/phpunit/includes/user/BotPasswordTest.php b/tests/phpunit/includes/user/BotPasswordTest.php
index 2a91edc117a2..547403984c45 100644
--- a/tests/phpunit/includes/user/BotPasswordTest.php
+++ b/tests/phpunit/includes/user/BotPasswordTest.php
@@ -11,6 +11,7 @@ use MediaWiki\Status\Status;
use MediaWiki\Tests\Session\TestUtils;
use MediaWiki\User\BotPassword;
use MediaWiki\User\CentralId\CentralIdLookup;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
use Wikimedia\ScopedCallback;
use Wikimedia\TestingAccessWrapper;
diff --git a/tests/phpunit/integration/includes/Html/TemplateParserIntegrationTest.php b/tests/phpunit/integration/includes/Html/TemplateParserIntegrationTest.php
index c66929772683..5813753e0339 100644
--- a/tests/phpunit/integration/includes/Html/TemplateParserIntegrationTest.php
+++ b/tests/phpunit/integration/includes/Html/TemplateParserIntegrationTest.php
@@ -2,6 +2,8 @@
use MediaWiki\Html\TemplateParser;
use MediaWiki\MainConfigNames;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
/**
* @group Templates
diff --git a/tests/phpunit/integration/includes/Permissions/RateLimiterTest.php b/tests/phpunit/integration/includes/Permissions/RateLimiterTest.php
index 37e9c7eadc97..3ce92d7f6fcb 100644
--- a/tests/phpunit/integration/includes/Permissions/RateLimiterTest.php
+++ b/tests/phpunit/integration/includes/Permissions/RateLimiterTest.php
@@ -3,7 +3,6 @@
namespace MediaWiki\Tests\Integration\Permissions;
use BufferingStatsdDataFactory;
-use HashBagOStuff;
use Liuggio\StatsdClient\Entity\StatsdData;
use Liuggio\StatsdClient\Entity\StatsdDataInterface;
use MediaWiki\Config\ServiceOptions;
@@ -15,6 +14,7 @@ use MediaWiki\User\UserIdentity;
use MediaWiki\User\UserIdentityValue;
use MediaWikiIntegrationTestCase;
use PHPUnit\Framework\MockObject\MockObject;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\TestingAccessWrapper;
use Wikimedia\WRStats\BagOStuffStatsStore;
use Wikimedia\WRStats\WRStatsFactory;
diff --git a/tests/phpunit/integration/includes/Rest/Handler/HTMLHandlerTestTrait.php b/tests/phpunit/integration/includes/Rest/Handler/HTMLHandlerTestTrait.php
index e244fdf0a374..c0d7d72b2f80 100644
--- a/tests/phpunit/integration/includes/Rest/Handler/HTMLHandlerTestTrait.php
+++ b/tests/phpunit/integration/includes/Rest/Handler/HTMLHandlerTestTrait.php
@@ -3,7 +3,6 @@
namespace MediaWiki\Tests\Rest\Handler;
use Exception;
-use HashBagOStuff;
use MediaWiki\Block\BlockErrorFormatter;
use MediaWiki\Context\IContextSource;
use MediaWiki\Edit\ParsoidOutputStash;
@@ -14,6 +13,7 @@ use MediaWiki\Permissions\UserAuthority;
use MediaWiki\Request\FauxRequest;
use MediaWiki\Rest\RequestData;
use MediaWiki\User\User;
+use Wikimedia\ObjectCache\HashBagOStuff;
use WikiPage;
/**
diff --git a/tests/phpunit/integration/includes/Rest/Handler/Helper/HtmlOutputRendererHelperTest.php b/tests/phpunit/integration/includes/Rest/Handler/Helper/HtmlOutputRendererHelperTest.php
index c8b0b50d7352..5ff0401b692b 100644
--- a/tests/phpunit/integration/includes/Rest/Handler/Helper/HtmlOutputRendererHelperTest.php
+++ b/tests/phpunit/integration/includes/Rest/Handler/Helper/HtmlOutputRendererHelperTest.php
@@ -2,9 +2,7 @@
namespace MediaWiki\Tests\Rest\Handler\Helper;
-use EmptyBagOStuff;
use Exception;
-use HashBagOStuff;
use MediaWiki\Content\CssContent;
use MediaWiki\Content\IContentHandlerFactory;
use MediaWiki\Deferred\DeferredUpdates;
@@ -49,6 +47,8 @@ use Psr\Log\NullLogger;
use Wikimedia\Bcp47Code\Bcp47Code;
use Wikimedia\Bcp47Code\Bcp47CodeValue;
use Wikimedia\Message\MessageValue;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Parsoid\Core\ClientError;
use Wikimedia\Parsoid\Core\PageBundle;
use Wikimedia\Parsoid\Core\ResourceLimitExceededException;
diff --git a/tests/phpunit/integration/includes/Rest/Handler/PageHTMLHandlerTest.php b/tests/phpunit/integration/includes/Rest/Handler/PageHTMLHandlerTest.php
index 18cf1b97f339..2d502fff8f85 100644
--- a/tests/phpunit/integration/includes/Rest/Handler/PageHTMLHandlerTest.php
+++ b/tests/phpunit/integration/includes/Rest/Handler/PageHTMLHandlerTest.php
@@ -3,7 +3,6 @@
namespace MediaWiki\Tests\Rest\Handler;
use Exception;
-use HashBagOStuff;
use MediaWiki\Deferred\DeferredUpdates;
use MediaWiki\Hook\ParserLogLinterDataHook;
use MediaWiki\MainConfigNames;
@@ -16,6 +15,7 @@ use MediaWikiIntegrationTestCase;
use PHPUnit\Framework\MockObject\MockObject;
use Psr\Http\Message\StreamInterface;
use Wikimedia\Message\MessageValue;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Parsoid\Core\ClientError;
use Wikimedia\Parsoid\Core\ResourceLimitExceededException;
use Wikimedia\Parsoid\Parsoid;
diff --git a/tests/phpunit/integration/includes/Rest/Handler/PageRedirectHandlerTest.php b/tests/phpunit/integration/includes/Rest/Handler/PageRedirectHandlerTest.php
index 4fa5db8225cf..e6febd3d25c5 100644
--- a/tests/phpunit/integration/includes/Rest/Handler/PageRedirectHandlerTest.php
+++ b/tests/phpunit/integration/includes/Rest/Handler/PageRedirectHandlerTest.php
@@ -2,11 +2,11 @@
namespace MediaWiki\Tests\Rest\Handler;
-use HashBagOStuff;
use InvalidArgumentException;
use MediaWiki\Rest\RequestData;
use MediaWiki\Rest\RequestInterface;
use MediaWikiIntegrationTestCase;
+use Wikimedia\ObjectCache\HashBagOStuff;
/**
* @covers \MediaWiki\Rest\Handler\PageSourceHandler
diff --git a/tests/phpunit/integration/includes/Rest/Handler/ParsoidOutputAccessTest.php b/tests/phpunit/integration/includes/Rest/Handler/ParsoidOutputAccessTest.php
index f78d8069c033..a6848014ce78 100644
--- a/tests/phpunit/integration/includes/Rest/Handler/ParsoidOutputAccessTest.php
+++ b/tests/phpunit/integration/includes/Rest/Handler/ParsoidOutputAccessTest.php
@@ -16,6 +16,8 @@ use MediaWiki\Revision\SlotRecord;
use MediaWiki\Status\Status;
use MediaWiki\Title\Title;
use PHPUnit\Framework\MockObject\MockObject;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Parsoid\Config\PageConfig;
use Wikimedia\Parsoid\Core\ContentMetadataCollector;
use Wikimedia\Parsoid\Core\PageBundle;
diff --git a/tests/phpunit/integration/includes/Rest/Handler/RevisionHTMLHandlerTest.php b/tests/phpunit/integration/includes/Rest/Handler/RevisionHTMLHandlerTest.php
index 649c613d059a..39ff34697adc 100644
--- a/tests/phpunit/integration/includes/Rest/Handler/RevisionHTMLHandlerTest.php
+++ b/tests/phpunit/integration/includes/Rest/Handler/RevisionHTMLHandlerTest.php
@@ -3,7 +3,6 @@
namespace MediaWiki\Tests\Rest\Handler;
use Exception;
-use HashBagOStuff;
use MediaWiki\Config\ServiceOptions;
use MediaWiki\Deferred\DeferredUpdates;
use MediaWiki\MainConfigNames;
@@ -23,6 +22,7 @@ use MediaWikiIntegrationTestCase;
use Psr\Http\Message\StreamInterface;
use ReflectionClass;
use Wikimedia\Message\MessageValue;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Parsoid\Core\ClientError;
use Wikimedia\Parsoid\Core\ResourceLimitExceededException;
use Wikimedia\Parsoid\Parsoid;
diff --git a/tests/phpunit/integration/includes/Rest/Handler/RevisionSourceHandlerTest.php b/tests/phpunit/integration/includes/Rest/Handler/RevisionSourceHandlerTest.php
index 7d0318147fe3..c16f97ff6928 100644
--- a/tests/phpunit/integration/includes/Rest/Handler/RevisionSourceHandlerTest.php
+++ b/tests/phpunit/integration/includes/Rest/Handler/RevisionSourceHandlerTest.php
@@ -2,7 +2,6 @@
namespace MediaWiki\Tests\Rest\Handler;
-use BagOStuff;
use Exception;
use MediaWiki\Content\TextContent;
use MediaWiki\Rest\Handler\RevisionSourceHandler;
@@ -12,6 +11,7 @@ use MediaWiki\Revision\RevisionRecord;
use MediaWiki\Revision\SlotRecord;
use MediaWikiIntegrationTestCase;
use Wikimedia\Message\MessageValue;
+use Wikimedia\ObjectCache\BagOStuff;
/**
* @covers \MediaWiki\Rest\Handler\RevisionSourceHandler
diff --git a/tests/phpunit/integration/includes/db/DatabaseSqliteTest.php b/tests/phpunit/integration/includes/db/DatabaseSqliteTest.php
index a26c4a77efdb..9ee4518baa5d 100644
--- a/tests/phpunit/integration/includes/db/DatabaseSqliteTest.php
+++ b/tests/phpunit/integration/includes/db/DatabaseSqliteTest.php
@@ -1,6 +1,7 @@
<?php
use Psr\Log\NullLogger;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Rdbms\Blob;
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\DatabaseSqlite;
diff --git a/tests/phpunit/integration/includes/db/DatabaseSqliteUpgradeTest.php b/tests/phpunit/integration/includes/db/DatabaseSqliteUpgradeTest.php
index f36c2fd35cb5..c958b70196b0 100644
--- a/tests/phpunit/integration/includes/db/DatabaseSqliteUpgradeTest.php
+++ b/tests/phpunit/integration/includes/db/DatabaseSqliteUpgradeTest.php
@@ -2,6 +2,7 @@
use MediaWiki\Installer\DatabaseUpdater;
use Psr\Log\NullLogger;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\DatabaseSqlite;
use Wikimedia\Rdbms\TransactionProfiler;
diff --git a/tests/phpunit/integration/includes/filerepo/LocalAndForeignDBRepoTest.php b/tests/phpunit/integration/includes/filerepo/LocalAndForeignDBRepoTest.php
index f1538f90ae51..56ab4a797750 100644
--- a/tests/phpunit/integration/includes/filerepo/LocalAndForeignDBRepoTest.php
+++ b/tests/phpunit/integration/includes/filerepo/LocalAndForeignDBRepoTest.php
@@ -1,6 +1,7 @@
<?php
use MediaWiki\WikiMap\WikiMap;
+use Wikimedia\ObjectCache\HashBagOStuff;
class LocalAndForeignDBRepoTest extends MediaWikiIntegrationTestCase {
/**
diff --git a/tests/phpunit/mocks/MockDatabase.php b/tests/phpunit/mocks/MockDatabase.php
index c6cabb161b89..ac7b2af5895e 100644
--- a/tests/phpunit/mocks/MockDatabase.php
+++ b/tests/phpunit/mocks/MockDatabase.php
@@ -2,8 +2,8 @@
namespace MediaWiki\Tests;
-use HashBagOStuff;
use MediaWiki\Logger\LoggerFactory;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\FakeResultWrapper;
use Wikimedia\Rdbms\IDatabase;
diff --git a/tests/phpunit/structure/BundleSizeTestBase.php b/tests/phpunit/structure/BundleSizeTestBase.php
index d704b962b740..0057a747fce2 100644
--- a/tests/phpunit/structure/BundleSizeTestBase.php
+++ b/tests/phpunit/structure/BundleSizeTestBase.php
@@ -2,7 +2,6 @@
namespace MediaWiki\Tests\Structure;
-use HashBagOStuff;
use MediaWiki\MainConfigNames;
use MediaWiki\MediaWikiServices;
use MediaWiki\Request\FauxRequest;
@@ -11,6 +10,7 @@ use MediaWiki\ResourceLoader\DerivativeContext;
use MediaWiki\ResourceLoader\Module;
use MediaWikiIntegrationTestCase;
use Wikimedia\DependencyStore\KeyValueDependencyStore;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\LBFactory;
diff --git a/tests/phpunit/structure/RestStructureTest.php b/tests/phpunit/structure/RestStructureTest.php
index d4f6c3dc827c..7e2dc8560946 100644
--- a/tests/phpunit/structure/RestStructureTest.php
+++ b/tests/phpunit/structure/RestStructureTest.php
@@ -22,6 +22,7 @@ use MediaWiki\Session\Session;
use MediaWiki\Tests\Unit\DummyServicesTrait;
use MediaWiki\Title\Title;
use MediaWiki\User\UserIdentityValue;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
use Wikimedia\ParamValidator\ParamValidator;
use Wikimedia\Stats\StatsFactory;
use Wikimedia\TestingAccessWrapper;
diff --git a/tests/phpunit/tests/MediaWikiIntegrationTestCaseTest.php b/tests/phpunit/tests/MediaWikiIntegrationTestCaseTest.php
index eb401a3bb4a4..1eb2c54b7e5e 100644
--- a/tests/phpunit/tests/MediaWikiIntegrationTestCaseTest.php
+++ b/tests/phpunit/tests/MediaWikiIntegrationTestCaseTest.php
@@ -9,6 +9,8 @@ use MediaWiki\Title\Title;
use PHPUnit\Framework\AssertionFailedError;
use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Rdbms\LoadBalancer;
use Wikimedia\Rdbms\ReadOnlyMode;
use Wikimedia\TestingAccessWrapper;
diff --git a/tests/phpunit/unit/includes/Rest/RestTestTrait.php b/tests/phpunit/unit/includes/Rest/RestTestTrait.php
index 893c75ff53f2..e137221c3061 100644
--- a/tests/phpunit/unit/includes/Rest/RestTestTrait.php
+++ b/tests/phpunit/unit/includes/Rest/RestTestTrait.php
@@ -2,7 +2,6 @@
namespace MediaWiki\Tests\Rest;
-use EmptyBagOStuff;
use MediaWiki\Config\ServiceOptions;
use MediaWiki\MainConfigNames;
use MediaWiki\Rest\BasicAccess\StaticBasicAuthorizer;
@@ -15,6 +14,7 @@ use MediaWiki\Rest\Validator\Validator;
use MediaWiki\Tests\Rest\Handler\SessionHelperTestTrait;
use MediaWiki\Tests\Unit\Permissions\MockAuthorityTrait;
use Psr\Container\ContainerInterface;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
use Wikimedia\ObjectFactory\ObjectFactory;
/**
diff --git a/tests/phpunit/unit/includes/Rest/RouterTest.php b/tests/phpunit/unit/includes/Rest/RouterTest.php
index 683a61e15ba6..e2a4de70b42d 100644
--- a/tests/phpunit/unit/includes/Rest/RouterTest.php
+++ b/tests/phpunit/unit/includes/Rest/RouterTest.php
@@ -3,7 +3,6 @@
namespace MediaWiki\Tests\Rest;
use GuzzleHttp\Psr7\Uri;
-use HashBagOStuff;
use MediaWiki\Config\ServiceOptions;
use MediaWiki\MainConfigNames;
use MediaWiki\Rest\BasicAccess\StaticBasicAuthorizer;
@@ -28,6 +27,7 @@ use Psr\Log\NullLogger;
use RuntimeException;
use Throwable;
use UDPTransport;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\ParamValidator\ParamValidator;
use Wikimedia\Stats\OutputFormats;
use Wikimedia\Stats\StatsCache;
diff --git a/tests/phpunit/unit/includes/Revision/RevisionStoreFactoryTest.php b/tests/phpunit/unit/includes/Revision/RevisionStoreFactoryTest.php
index fd865aec1326..04136ef54ca1 100644
--- a/tests/phpunit/unit/includes/Revision/RevisionStoreFactoryTest.php
+++ b/tests/phpunit/unit/includes/Revision/RevisionStoreFactoryTest.php
@@ -2,7 +2,6 @@
namespace MediaWiki\Tests\Unit\Revision;
-use HashBagOStuff;
use MediaWiki\CommentStore\CommentStore;
use MediaWiki\Content\IContentHandlerFactory;
use MediaWiki\Page\PageStore;
@@ -24,6 +23,7 @@ use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
use WANObjectCache;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Rdbms\ILBFactory;
use Wikimedia\Rdbms\ILoadBalancer;
use Wikimedia\TestingAccessWrapper;
diff --git a/tests/phpunit/unit/includes/Settings/Cache/CachedSourceTest.php b/tests/phpunit/unit/includes/Settings/Cache/CachedSourceTest.php
index fdc262ece100..aff3d636547c 100644
--- a/tests/phpunit/unit/includes/Settings/Cache/CachedSourceTest.php
+++ b/tests/phpunit/unit/includes/Settings/Cache/CachedSourceTest.php
@@ -2,11 +2,11 @@
namespace MediaWiki\Tests\Unit\Settings\Cache;
-use HashBagOStuff;
use MediaWiki\Settings\Cache\CacheableSource;
use MediaWiki\Settings\Cache\CachedSource;
use MediaWiki\Settings\SettingsBuilderException;
use PHPUnit\Framework\TestCase;
+use Wikimedia\ObjectCache\HashBagOStuff;
/**
* @covers \MediaWiki\Settings\Cache\CachedSource
diff --git a/tests/phpunit/unit/includes/Settings/SettingsBuilderTest.php b/tests/phpunit/unit/includes/Settings/SettingsBuilderTest.php
index d5d92e5265e8..25cf4a01336e 100644
--- a/tests/phpunit/unit/includes/Settings/SettingsBuilderTest.php
+++ b/tests/phpunit/unit/includes/Settings/SettingsBuilderTest.php
@@ -2,7 +2,6 @@
namespace MediaWiki\Tests\Unit\Settings;
-use BagOStuff;
use ExtensionRegistry;
use InvalidArgumentException;
use MediaWiki\MainConfigNames;
@@ -15,6 +14,7 @@ use MediaWiki\Settings\Config\PhpIniSink;
use MediaWiki\Settings\SettingsBuilder;
use MediaWiki\Settings\SettingsBuilderException;
use PHPUnit\Framework\TestCase;
+use Wikimedia\ObjectCache\BagOStuff;
/**
* @covers \MediaWiki\Settings\SettingsBuilder
diff --git a/tests/phpunit/unit/includes/Storage/EditResultCacheTest.php b/tests/phpunit/unit/includes/Storage/EditResultCacheTest.php
index bb1ef51fd1f5..e915bb8e7a61 100644
--- a/tests/phpunit/unit/includes/Storage/EditResultCacheTest.php
+++ b/tests/phpunit/unit/includes/Storage/EditResultCacheTest.php
@@ -2,13 +2,13 @@
namespace MediaWiki\Tests\Storage;
-use BagOStuff;
use MediaWiki\Config\ServiceOptions;
use MediaWiki\Json\FormatJson;
use MediaWiki\MainConfigNames;
use MediaWiki\Storage\EditResult;
use MediaWiki\Storage\EditResultCache;
use MediaWikiUnitTestCase;
+use Wikimedia\ObjectCache\BagOStuff;
use Wikimedia\Rdbms\IConnectionProvider;
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\SelectQueryBuilder;
diff --git a/tests/phpunit/unit/includes/StubObject/DeprecatedGlobalTest.php b/tests/phpunit/unit/includes/StubObject/DeprecatedGlobalTest.php
index 8b54cdc11f2d..dd6b925783ad 100644
--- a/tests/phpunit/unit/includes/StubObject/DeprecatedGlobalTest.php
+++ b/tests/phpunit/unit/includes/StubObject/DeprecatedGlobalTest.php
@@ -19,6 +19,7 @@
*/
use MediaWiki\StubObject\DeprecatedGlobal;
+use Wikimedia\ObjectCache\HashBagOStuff;
/**
* @covers \MediaWiki\StubObject\DeprecatedGlobal
diff --git a/tests/phpunit/unit/includes/cache/BacklinkCacheFactoryTest.php b/tests/phpunit/unit/includes/cache/BacklinkCacheFactoryTest.php
index 69377d8ab123..2736a20556f6 100644
--- a/tests/phpunit/unit/includes/cache/BacklinkCacheFactoryTest.php
+++ b/tests/phpunit/unit/includes/cache/BacklinkCacheFactoryTest.php
@@ -4,6 +4,7 @@ use MediaWiki\Cache\BacklinkCacheFactory;
use MediaWiki\Config\ServiceOptions;
use MediaWiki\Linker\LinksMigration;
use MediaWiki\Page\PageReferenceValue;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
use Wikimedia\Rdbms\IConnectionProvider;
/**
diff --git a/tests/phpunit/unit/includes/config/EtcdConfigTest.php b/tests/phpunit/unit/includes/config/EtcdConfigTest.php
index 841d3f838c85..baf602506c5b 100644
--- a/tests/phpunit/unit/includes/config/EtcdConfigTest.php
+++ b/tests/phpunit/unit/includes/config/EtcdConfigTest.php
@@ -3,6 +3,7 @@
use MediaWiki\Config\ConfigException;
use MediaWiki\Config\EtcdConfig;
use Wikimedia\Http\MultiHttpClient;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\TestingAccessWrapper;
/**
diff --git a/tests/phpunit/unit/includes/db/MWLBFactoryTest.php b/tests/phpunit/unit/includes/db/MWLBFactoryTest.php
index 16a97d3ade82..8c07e647392d 100644
--- a/tests/phpunit/unit/includes/db/MWLBFactoryTest.php
+++ b/tests/phpunit/unit/includes/db/MWLBFactoryTest.php
@@ -19,6 +19,7 @@
*/
use MediaWiki\Config\ServiceOptions;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
use Wikimedia\Rdbms\ChronologyProtector;
use Wikimedia\Rdbms\ConfiguredReadOnlyMode;
use Wikimedia\Rdbms\DatabaseDomain;
diff --git a/tests/phpunit/unit/includes/edit/SimpleParsoidOutputStashTest.php b/tests/phpunit/unit/includes/edit/SimpleParsoidOutputStashTest.php
index 3f9b510a8c7a..788418703286 100644
--- a/tests/phpunit/unit/includes/edit/SimpleParsoidOutputStashTest.php
+++ b/tests/phpunit/unit/includes/edit/SimpleParsoidOutputStashTest.php
@@ -2,12 +2,12 @@
namespace MediaWiki\Tests\Unit\Edit;
-use HashBagOStuff;
use MediaWiki\Content\TextContentHandler;
use MediaWiki\Edit\ParsoidRenderID;
use MediaWiki\Edit\SelserContext;
use MediaWiki\Edit\SimpleParsoidOutputStash;
use MediaWiki\Tests\Unit\DummyServicesTrait;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Parsoid\Core\PageBundle;
use WikitextContent;
diff --git a/tests/phpunit/unit/includes/filebackend/FileBackendGroupTest.php b/tests/phpunit/unit/includes/filebackend/FileBackendGroupTest.php
index 034f135dad8d..60a5ff976f6a 100644
--- a/tests/phpunit/unit/includes/filebackend/FileBackendGroupTest.php
+++ b/tests/phpunit/unit/includes/filebackend/FileBackendGroupTest.php
@@ -5,6 +5,8 @@ use MediaWiki\FileBackend\FileBackendGroup;
use MediaWiki\FileBackend\FSFile\TempFSFileFactory;
use MediaWiki\FileBackend\LockManager\LockManagerGroupFactory;
use MediaWiki\Tests\Unit\DummyServicesTrait;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
/**
* @coversDefaultClass \MediaWiki\FileBackend\FileBackendGroup
diff --git a/tests/phpunit/unit/includes/filebackend/FileBackendGroupTestTrait.php b/tests/phpunit/unit/includes/filebackend/FileBackendGroupTestTrait.php
index 651f372a99ce..ddb01c9c6cfd 100644
--- a/tests/phpunit/unit/includes/filebackend/FileBackendGroupTestTrait.php
+++ b/tests/phpunit/unit/includes/filebackend/FileBackendGroupTestTrait.php
@@ -7,6 +7,8 @@ use MediaWiki\Logger\LoggerFactory;
use MediaWiki\MainConfigNames;
use MediaWiki\Output\StreamFile;
use MediaWiki\Status\Status;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\TestingAccessWrapper;
/**
diff --git a/tests/phpunit/unit/includes/installer/PingbackTest.php b/tests/phpunit/unit/includes/installer/PingbackTest.php
index 404df12634ac..533cf3a59af0 100644
--- a/tests/phpunit/unit/includes/installer/PingbackTest.php
+++ b/tests/phpunit/unit/includes/installer/PingbackTest.php
@@ -6,6 +6,8 @@ use MediaWiki\Installer\Pingback;
use MediaWiki\MainConfigNames;
use MediaWiki\Status\Status;
use Psr\Log\NullLogger;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Rdbms\IConnectionProvider;
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\InsertQueryBuilder;
diff --git a/tests/phpunit/unit/includes/libs/WRStats/BagOStuffStatsStoreTest.php b/tests/phpunit/unit/includes/libs/WRStats/BagOStuffStatsStoreTest.php
index eece0ed70de1..85e2db4b0e2f 100644
--- a/tests/phpunit/unit/includes/libs/WRStats/BagOStuffStatsStoreTest.php
+++ b/tests/phpunit/unit/includes/libs/WRStats/BagOStuffStatsStoreTest.php
@@ -2,8 +2,8 @@
namespace Wikimedia\Tests\WRStats;
-use HashBagOStuff;
use PHPUnit\Framework\TestCase;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\WRStats\BagOStuffStatsStore;
use Wikimedia\WRStats\EntityKey;
use Wikimedia\WRStats\GlobalEntityKey;
diff --git a/tests/phpunit/unit/includes/libs/objectcache/CachedBagOStuffTest.php b/tests/phpunit/unit/includes/libs/objectcache/CachedBagOStuffTest.php
index e511b2669ead..c1a8f152cccc 100644
--- a/tests/phpunit/unit/includes/libs/objectcache/CachedBagOStuffTest.php
+++ b/tests/phpunit/unit/includes/libs/objectcache/CachedBagOStuffTest.php
@@ -2,15 +2,15 @@
namespace Wikimedia\Tests\ObjectCache;
-use CachedBagOStuff;
-use HashBagOStuff;
use MediaWikiCoversValidator;
use PHPUnit\Framework\TestCase;
use Wikimedia\LightweightObjectStore\StorageAwareness;
+use Wikimedia\ObjectCache\CachedBagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\TestingAccessWrapper;
/**
- * @covers \CachedBagOStuff
+ * @covers \Wikimedia\ObjectCache\CachedBagOStuff
* @group BagOStuff
*/
class CachedBagOStuffTest extends TestCase {
diff --git a/tests/phpunit/unit/includes/libs/objectcache/HashBagOStuffTest.php b/tests/phpunit/unit/includes/libs/objectcache/HashBagOStuffTest.php
index f63d11a9010b..a1125d9a3a1f 100644
--- a/tests/phpunit/unit/includes/libs/objectcache/HashBagOStuffTest.php
+++ b/tests/phpunit/unit/includes/libs/objectcache/HashBagOStuffTest.php
@@ -2,14 +2,14 @@
namespace Wikimedia\Tests\ObjectCache;
-use BagOStuff;
-use HashBagOStuff;
use InvalidArgumentException;
use MediaWikiCoversValidator;
use NullStatsdDataFactory;
use PHPUnit\Framework\TestCase;
use Psr\Log\NullLogger;
use UDPTransport;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Stats\Metrics\MetricInterface;
use Wikimedia\Stats\OutputFormats;
use Wikimedia\Stats\StatsCache;
@@ -17,9 +17,9 @@ use Wikimedia\Stats\StatsFactory;
use Wikimedia\TestingAccessWrapper;
/**
- * @covers \HashBagOStuff
- * @covers \MediumSpecificBagOStuff
- * @covers \BagOStuff
+ * @covers \Wikimedia\ObjectCache\HashBagOStuff
+ * @covers \Wikimedia\ObjectCache\MediumSpecificBagOStuff
+ * @covers \Wikimedia\ObjectCache\BagOStuff
* @group BagOStuff
*/
class HashBagOStuffTest extends TestCase {
diff --git a/tests/phpunit/unit/includes/libs/objectcache/ReplicatedBagOStuffTest.php b/tests/phpunit/unit/includes/libs/objectcache/ReplicatedBagOStuffTest.php
index 0ed35f06700f..a353bf37caec 100644
--- a/tests/phpunit/unit/includes/libs/objectcache/ReplicatedBagOStuffTest.php
+++ b/tests/phpunit/unit/includes/libs/objectcache/ReplicatedBagOStuffTest.php
@@ -2,10 +2,10 @@
namespace Wikimedia\Tests\ObjectCache;
-use HashBagOStuff;
use MediaWikiUnitTestCase;
use ReplicatedBagOStuff;
use Wikimedia\LightweightObjectStore\StorageAwareness;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\TestingAccessWrapper;
/**
diff --git a/tests/phpunit/unit/includes/libs/objectcache/WANObjectCacheTest.php b/tests/phpunit/unit/includes/libs/objectcache/WANObjectCacheTest.php
index e247c68b8443..7ea9b8f91014 100644
--- a/tests/phpunit/unit/includes/libs/objectcache/WANObjectCacheTest.php
+++ b/tests/phpunit/unit/includes/libs/objectcache/WANObjectCacheTest.php
@@ -5,13 +5,13 @@
namespace Wikimedia\Tests\ObjectCache;
use ArrayIterator;
-use BagOStuff;
-use EmptyBagOStuff;
-use HashBagOStuff;
use MediaWikiUnitTestCase;
use Psr\Log\NullLogger;
use UnexpectedValueException;
use WANObjectCache;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\TestingAccessWrapper;
/**
diff --git a/tests/phpunit/unit/includes/libs/rdbms/ChronologyProtectorTest.php b/tests/phpunit/unit/includes/libs/rdbms/ChronologyProtectorTest.php
index cba38252ac50..3f3f13f90b1d 100644
--- a/tests/phpunit/unit/includes/libs/rdbms/ChronologyProtectorTest.php
+++ b/tests/phpunit/unit/includes/libs/rdbms/ChronologyProtectorTest.php
@@ -22,6 +22,7 @@
*/
use PHPUnit\Framework\TestCase;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Rdbms\ChronologyProtector;
use Wikimedia\Rdbms\ILoadBalancer;
use Wikimedia\Rdbms\MySQLPrimaryPos;
diff --git a/tests/phpunit/unit/includes/libs/rdbms/LoadMonitorTest.php b/tests/phpunit/unit/includes/libs/rdbms/LoadMonitorTest.php
index 44c15c51bf11..fcc1b12ff36a 100644
--- a/tests/phpunit/unit/includes/libs/rdbms/LoadMonitorTest.php
+++ b/tests/phpunit/unit/includes/libs/rdbms/LoadMonitorTest.php
@@ -18,6 +18,7 @@
* @file
*/
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Rdbms\DBUnexpectedError;
use Wikimedia\Rdbms\FakeResultWrapper;
use Wikimedia\Rdbms\IDatabase;
diff --git a/tests/phpunit/unit/includes/libs/rdbms/database/DatabaseTest.php b/tests/phpunit/unit/includes/libs/rdbms/database/DatabaseTest.php
index 57eec2c1298a..0721bc5dd358 100644
--- a/tests/phpunit/unit/includes/libs/rdbms/database/DatabaseTest.php
+++ b/tests/phpunit/unit/includes/libs/rdbms/database/DatabaseTest.php
@@ -3,7 +3,6 @@
namespace Wikimedia\Tests\Rdbms;
use DatabaseTestHelper;
-use HashBagOStuff;
use MediaWiki\Tests\MockDatabase;
use MediaWiki\Tests\Unit\Libs\Rdbms\AddQuoterMock;
use MediaWiki\Tests\Unit\Libs\Rdbms\SQLPlatformTestHelper;
@@ -12,6 +11,7 @@ use PHPUnit\Framework\TestCase;
use Psr\Log\NullLogger;
use RuntimeException;
use Throwable;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\Database\DatabaseFlags;
use Wikimedia\Rdbms\DatabaseDomain;
diff --git a/tests/phpunit/unit/includes/objectcache/MemcachedBagOStuffTest.php b/tests/phpunit/unit/includes/objectcache/MemcachedBagOStuffTest.php
index 0dbb3980f634..fbcf9b8195a1 100644
--- a/tests/phpunit/unit/includes/objectcache/MemcachedBagOStuffTest.php
+++ b/tests/phpunit/unit/includes/objectcache/MemcachedBagOStuffTest.php
@@ -1,6 +1,10 @@
<?php
+
+use Wikimedia\ObjectCache\MemcachedBagOStuff;
+use Wikimedia\ObjectCache\MemcachedPhpBagOStuff;
+
/**
- * @covers \MemcachedBagOStuff
+ * @covers \Wikimedia\ObjectCache\MemcachedBagOStuff
* @group BagOStuff
*/
class MemcachedBagOStuffTest extends \MediaWikiUnitTestCase {
diff --git a/tests/phpunit/unit/includes/objectcache/ObjectCacheFactoryTest.php b/tests/phpunit/unit/includes/objectcache/ObjectCacheFactoryTest.php
index 0e0cc62fe28f..6dd3c34df7a5 100644
--- a/tests/phpunit/unit/includes/objectcache/ObjectCacheFactoryTest.php
+++ b/tests/phpunit/unit/includes/objectcache/ObjectCacheFactoryTest.php
@@ -2,6 +2,7 @@
use MediaWiki\Config\ServiceOptions;
use MediaWiki\Logger\Spi;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Stats\StatsFactory;
/**
diff --git a/tests/phpunit/unit/includes/objectcache/RESTBagOStuffTest.php b/tests/phpunit/unit/includes/objectcache/RESTBagOStuffTest.php
index a20ce3be0036..c4966fee7f42 100644
--- a/tests/phpunit/unit/includes/objectcache/RESTBagOStuffTest.php
+++ b/tests/phpunit/unit/includes/objectcache/RESTBagOStuffTest.php
@@ -1,11 +1,13 @@
<?php
use Wikimedia\Http\MultiHttpClient;
+use Wikimedia\ObjectCache\BagOStuff;
+use Wikimedia\ObjectCache\RESTBagOStuff;
/**
* @group BagOStuff
*
- * @covers \RESTBagOStuff
+ * @covers \Wikimedia\ObjectCache\RESTBagOStuff
*/
class RESTBagOStuffTest extends \MediaWikiUnitTestCase {
diff --git a/tests/phpunit/unit/includes/objectcache/RedisBagOStuffTest.php b/tests/phpunit/unit/includes/objectcache/RedisBagOStuffTest.php
index f5794fc07858..32950ba462b1 100644
--- a/tests/phpunit/unit/includes/objectcache/RedisBagOStuffTest.php
+++ b/tests/phpunit/unit/includes/objectcache/RedisBagOStuffTest.php
@@ -1,9 +1,10 @@
<?php
+use Wikimedia\ObjectCache\RedisBagOStuff;
use Wikimedia\TestingAccessWrapper;
/**
- * @covers \RedisBagOStuff
+ * @covers \Wikimedia\ObjectCache\RedisBagOStuff
* @group BagOStuff
*/
class RedisBagOStuffTest extends MediaWikiUnitTestCase {
diff --git a/tests/phpunit/unit/includes/page/DeletePageTest.php b/tests/phpunit/unit/includes/page/DeletePageTest.php
index 03be5738a298..eeeb662afb3b 100644
--- a/tests/phpunit/unit/includes/page/DeletePageTest.php
+++ b/tests/phpunit/unit/includes/page/DeletePageTest.php
@@ -3,7 +3,6 @@
namespace MediaWiki\Tests\Unit\Page;
use BadMethodCallException;
-use BagOStuff;
use Generator;
use JobQueueGroup;
use MediaWiki\Cache\BacklinkCacheFactory;
@@ -30,6 +29,7 @@ use MediaWiki\User\UserIdentityValue;
use MediaWikiUnitTestCase;
use PHPUnit\Framework\MockObject\MockObject;
use Wikimedia\Message\ITextFormatter;
+use Wikimedia\ObjectCache\BagOStuff;
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\IResultWrapper;
use Wikimedia\Rdbms\LBFactory;
diff --git a/tests/phpunit/unit/includes/page/File/BadFileLookupTest.php b/tests/phpunit/unit/includes/page/File/BadFileLookupTest.php
index df90174f285c..487eac153ad6 100644
--- a/tests/phpunit/unit/includes/page/File/BadFileLookupTest.php
+++ b/tests/phpunit/unit/includes/page/File/BadFileLookupTest.php
@@ -4,6 +4,7 @@ use MediaWiki\HookContainer\HookContainer;
use MediaWiki\Page\File\BadFileLookup;
use MediaWiki\Tests\Unit\DummyServicesTrait;
use MediaWiki\Title\TitleValue;
+use Wikimedia\ObjectCache\EmptyBagOStuff;
/**
* @coversDefaultClass \MediaWiki\Page\File\BadFileLookup
diff --git a/tests/phpunit/unit/includes/parser/ParserCacheFactoryTest.php b/tests/phpunit/unit/includes/parser/ParserCacheFactoryTest.php
index ce2ebbbc865e..6d71e93edfab 100644
--- a/tests/phpunit/unit/includes/parser/ParserCacheFactoryTest.php
+++ b/tests/phpunit/unit/includes/parser/ParserCacheFactoryTest.php
@@ -2,7 +2,6 @@
namespace MediaWiki\Tests\Parser;
-use HashBagOStuff;
use MediaWiki\Config\ServiceOptions;
use MediaWiki\Json\JsonCodec;
use MediaWiki\MainConfigNames;
@@ -15,6 +14,7 @@ use MediaWikiUnitTestCase;
use ParserCache;
use Psr\Log\NullLogger;
use WANObjectCache;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Stats\StatsFactory;
use Wikimedia\UUID\GlobalIdGenerator;
diff --git a/tests/phpunit/unit/includes/watchlist/WatchedItemStoreUnitTest.php b/tests/phpunit/unit/includes/watchlist/WatchedItemStoreUnitTest.php
index f7ce37bb056a..334544632b1c 100644
--- a/tests/phpunit/unit/includes/watchlist/WatchedItemStoreUnitTest.php
+++ b/tests/phpunit/unit/includes/watchlist/WatchedItemStoreUnitTest.php
@@ -20,6 +20,7 @@ use MediaWiki\Watchlist\ActivityUpdateJob;
use MediaWiki\Watchlist\WatchedItem;
use MediaWiki\Watchlist\WatchedItemStore;
use PHPUnit\Framework\MockObject\MockObject;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Rdbms\DeleteQueryBuilder;
use Wikimedia\Rdbms\FakeResultWrapper;
use Wikimedia\Rdbms\IDatabase;
diff --git a/tests/phpunit/unit/tests/MediaWikiUnitTestCaseTest.php b/tests/phpunit/unit/tests/MediaWikiUnitTestCaseTest.php
index 21c31be0c5f1..4c67293fae01 100644
--- a/tests/phpunit/unit/tests/MediaWikiUnitTestCaseTest.php
+++ b/tests/phpunit/unit/tests/MediaWikiUnitTestCaseTest.php
@@ -1,6 +1,7 @@
<?php
use MediaWiki\Config\HashConfig;
+use Wikimedia\ObjectCache\HashBagOStuff;
use Wikimedia\Services\NoSuchServiceException;
/**