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
*/
class MessageBlobStore implements LoggerAwareInterface {
- /* @var ResourceLoader|null */
+ /* @var ResourceLoader */
private $resourceloader;
/**
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();
}
/**
* @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;
}
# 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();
}
}
}
// ResourceLoader: Message cache
- $blobStore = new MessageBlobStore();
+ $blobStore = new MessageBlobStore(
+ MediaWikiServices::getInstance()->getResourceLoader()
+ );
$blobStore->clear();
// ResourceLoader: File-dependency cache
$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 } );',
->method( 'buildCssLinksArray' )
->willReturn( [] );
$rl = $op->getResourceLoader();
- $rl->setMessageBlobStore( new NullMessageBlobStore() );
+ $rl->setMessageBlobStore( $this->createMock( MessageBlobStore::class ) );
// Register custom modules
$rl->register( [
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() {
- }
-}
class MessageBlobStoreTest extends PHPUnit\Framework\TestCase {
use MediaWikiCoversValidator;
+ use PHPUnit4And6Compat;
protected function setUp() {
parent::setUp();
protected function makeBlobStore( $methods = null, $rl = null ) {
$blobStore = $this->getMockBuilder( MessageBlobStore::class )
- ->setConstructorArgs( [ $rl ] )
+ ->setConstructorArgs( [ $rl ?? $this->createMock( ResourceLoader::class ) ] )
->setMethods( $methods )
->getMock();