resourceloader: Make $rl parameter mandatory for MessageBlobStore
Change-Id: I851b2417b7e495a1d0c7ee1aa8be2b2e970840bb
This commit is contained in:
parent
b4cdfaa095
commit
3edaa0b37c
6 changed files with 15 additions and 33 deletions
|
|
@ -255,6 +255,7 @@ because of Phabricator reports.
|
|||
parameter.
|
||||
* The ChangeList::insertArticleLink() method, that was deprecated in 1.27, has
|
||||
been removed.
|
||||
* MessageBlobStore::__construct() now requires its $rl parameter.
|
||||
|
||||
=== Deprecations in 1.33 ===
|
||||
* The configuration option $wgUseESI has been deprecated, and is expected
|
||||
|
|
|
|||
14
includes/cache/MessageBlobStore.php
vendored
14
includes/cache/MessageBlobStore.php
vendored
|
|
@ -37,7 +37,7 @@ use Wikimedia\Rdbms\Database;
|
|||
*/
|
||||
class MessageBlobStore implements LoggerAwareInterface {
|
||||
|
||||
/* @var ResourceLoader|null */
|
||||
/* @var ResourceLoader */
|
||||
private $resourceloader;
|
||||
|
||||
/**
|
||||
|
|
@ -51,13 +51,13 @@ class MessageBlobStore implements LoggerAwareInterface {
|
|||
protected $wanCache;
|
||||
|
||||
/**
|
||||
* @param ResourceLoader|null $rl
|
||||
* @param ResourceLoader $rl
|
||||
* @param LoggerInterface|null $logger
|
||||
*/
|
||||
public function __construct( ResourceLoader $rl = null, LoggerInterface $logger = null ) {
|
||||
public function __construct( ResourceLoader $rl, LoggerInterface $logger = null ) {
|
||||
$this->resourceloader = $rl;
|
||||
$this->logger = $logger ?: new NullLogger();
|
||||
$this->wanCache = ObjectCache::getMainWANInstance();
|
||||
$this->wanCache = MediaWikiServices::getInstance()->getMainWANObjectCache();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -191,12 +191,6 @@ class MessageBlobStore implements LoggerAwareInterface {
|
|||
* @return ResourceLoader
|
||||
*/
|
||||
protected function getResourceLoader() {
|
||||
// Back-compat: This class supports instantiation without a ResourceLoader object.
|
||||
// Lazy-initialise this property because most callers don't need it.
|
||||
if ( $this->resourceloader === null ) {
|
||||
$this->logger->warning( __CLASS__ . ' created without a ResourceLoader instance' );
|
||||
$this->resourceloader = MediaWikiServices::getInstance()->getResourceLoader();
|
||||
}
|
||||
return $this->resourceloader;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1034,7 +1034,9 @@ class LocalisationCache {
|
|||
# HACK: If using a null (i.e. disabled) storage backend, we
|
||||
# can't write to the MessageBlobStore either
|
||||
if ( $purgeBlobs && !$this->store instanceof LCStoreNull ) {
|
||||
$blobStore = new MessageBlobStore();
|
||||
$blobStore = new MessageBlobStore(
|
||||
MediaWikiServices::getInstance()->getResourceLoader()
|
||||
);
|
||||
$blobStore->clear();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1074,7 +1074,9 @@ abstract class DatabaseUpdater {
|
|||
}
|
||||
|
||||
// ResourceLoader: Message cache
|
||||
$blobStore = new MessageBlobStore();
|
||||
$blobStore = new MessageBlobStore(
|
||||
MediaWikiServices::getInstance()->getResourceLoader()
|
||||
);
|
||||
$blobStore->clear();
|
||||
|
||||
// ResourceLoader: File-dependency cache
|
||||
|
|
|
|||
|
|
@ -2531,7 +2531,7 @@ class OutputPageTest extends MediaWikiTestCase {
|
|||
$nonce->setAccessible( true );
|
||||
$nonce->setValue( $out, 'secret' );
|
||||
$rl = $out->getResourceLoader();
|
||||
$rl->setMessageBlobStore( new NullMessageBlobStore() );
|
||||
$rl->setMessageBlobStore( $this->createMock( MessageBlobStore::class ) );
|
||||
$rl->register( [
|
||||
'test.foo' => new ResourceLoaderTestModule( [
|
||||
'script' => 'mw.test.foo( { a: true } );',
|
||||
|
|
@ -2647,7 +2647,7 @@ class OutputPageTest extends MediaWikiTestCase {
|
|||
->method( 'buildCssLinksArray' )
|
||||
->willReturn( [] );
|
||||
$rl = $op->getResourceLoader();
|
||||
$rl->setMessageBlobStore( new NullMessageBlobStore() );
|
||||
$rl->setMessageBlobStore( $this->createMock( MessageBlobStore::class ) );
|
||||
|
||||
// Register custom modules
|
||||
$rl->register( [
|
||||
|
|
@ -3051,21 +3051,3 @@ class OutputPageTest extends MediaWikiTestCase {
|
|||
return new OutputPage( $context );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* MessageBlobStore that doesn't do anything
|
||||
*/
|
||||
class NullMessageBlobStore extends MessageBlobStore {
|
||||
public function get( ResourceLoader $resourceLoader, $modules, $lang ) {
|
||||
return [];
|
||||
}
|
||||
|
||||
public function updateModule( $name, ResourceLoaderModule $module, $lang ) {
|
||||
}
|
||||
|
||||
public function updateMessage( $key ) {
|
||||
}
|
||||
|
||||
public function clear() {
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ use Wikimedia\TestingAccessWrapper;
|
|||
class MessageBlobStoreTest extends PHPUnit\Framework\TestCase {
|
||||
|
||||
use MediaWikiCoversValidator;
|
||||
use PHPUnit4And6Compat;
|
||||
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
|
|
@ -37,7 +38,7 @@ class MessageBlobStoreTest extends PHPUnit\Framework\TestCase {
|
|||
|
||||
protected function makeBlobStore( $methods = null, $rl = null ) {
|
||||
$blobStore = $this->getMockBuilder( MessageBlobStore::class )
|
||||
->setConstructorArgs( [ $rl ] )
|
||||
->setConstructorArgs( [ $rl ?? $this->createMock( ResourceLoader::class ) ] )
|
||||
->setMethods( $methods )
|
||||
->getMock();
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue