Use namespaced ResourceLoader classes

This change requires MediaWiki >= 1.39 which is already required in
extension.json.

Change-Id: I25b820ddaab1775d021b1b708f989fb6d9fc2b27
This commit is contained in:
Fomafix
2023-12-01 10:09:00 +00:00
committed by jenkins-bot
parent 8235b1ba91
commit 5142df9d42
4 changed files with 19 additions and 17 deletions

View File

@@ -9,22 +9,22 @@
namespace UniversalLanguageSelector; namespace UniversalLanguageSelector;
use ResourceLoaderContext; use MediaWiki\ResourceLoader\Context;
use ResourceLoaderModule; use MediaWiki\ResourceLoader\Module;
use Xml; use Xml;
/** /**
* ResourceLoader module for client-side loading of json-based localization. * ResourceLoader module for client-side loading of json-based localization.
*/ */
class ResourceLoaderULSJsonMessageModule extends ResourceLoaderModule { class ResourceLoaderULSJsonMessageModule extends Module {
/** /**
* Part of the ResourceLoader module interface. * Part of the ResourceLoader module interface.
* Declares the core ext.uls.i18n module as a dependency. * Declares the core ext.uls.i18n module as a dependency.
* @suppress PhanParamSignatureRealMismatchParamType, UnusedSuppression -- T308443 * @suppress PhanParamSignatureRealMismatchParamType, UnusedSuppression -- T308443
* @param ResourceLoaderContext|null $context * @param Context|null $context
* @return string[] Module names. * @return string[] Module names.
*/ */
public function getDependencies( ResourceLoaderContext $context = null ) { public function getDependencies( Context $context = null ) {
return [ 'ext.uls.i18n' ]; return [ 'ext.uls.i18n' ];
} }
@@ -38,10 +38,10 @@ class ResourceLoaderULSJsonMessageModule extends ResourceLoaderModule {
/** /**
* @suppress PhanParamSignatureRealMismatchParamType, UnusedSuppression -- T308443 * @suppress PhanParamSignatureRealMismatchParamType, UnusedSuppression -- T308443
* @param ResourceLoaderContext $context * @param Context $context
* @return array * @return array
*/ */
public function getDefinitionSummary( ResourceLoaderContext $context ) { public function getDefinitionSummary( Context $context ) {
$code = $context->getLanguage(); $code = $context->getLanguage();
$fileHashes = array_map( $fileHashes = array_map(
[ __CLASS__, 'safeFileHash' ], [ __CLASS__, 'safeFileHash' ],
@@ -59,10 +59,10 @@ class ResourceLoaderULSJsonMessageModule extends ResourceLoaderModule {
* Get the message strings for the current UI language. Uses * Get the message strings for the current UI language. Uses
* mw.uls.loadLocalization to register them on the frontend. * mw.uls.loadLocalization to register them on the frontend.
* @suppress PhanParamSignatureRealMismatchParamType, UnusedSuppression -- T308443 * @suppress PhanParamSignatureRealMismatchParamType, UnusedSuppression -- T308443
* @param ResourceLoaderContext $context * @param Context $context
* @return string JavaScript code. * @return string JavaScript code.
*/ */
public function getScript( ResourceLoaderContext $context ) { public function getScript( Context $context ) {
$code = $context->getLanguage(); $code = $context->getLanguage();
$params = [ $code, ULSJsonMessageLoader::getMessages( $code ) ]; $params = [ $code, ULSJsonMessageLoader::getMessages( $code ) ];

View File

@@ -23,14 +23,14 @@ namespace UniversalLanguageSelector;
use MediaWiki\Languages\LanguageNameUtils; use MediaWiki\Languages\LanguageNameUtils;
use MediaWiki\MediaWikiServices; use MediaWiki\MediaWikiServices;
use ResourceLoader; use MediaWiki\ResourceLoader\Context;
use ResourceLoaderContext; use MediaWiki\ResourceLoader\Module;
use ResourceLoaderModule; use MediaWiki\ResourceLoader\ResourceLoader;
/** /**
* ResourceLoader module for UniversalLanguageSelector * ResourceLoader module for UniversalLanguageSelector
*/ */
class ResourceLoaderULSModule extends ResourceLoaderModule { class ResourceLoaderULSModule extends Module {
/** @var string[] */ /** @var string[] */
protected $targets = [ 'desktop', 'mobile' ]; protected $targets = [ 'desktop', 'mobile' ];
@@ -51,10 +51,10 @@ class ResourceLoaderULSModule extends ResourceLoaderModule {
/** /**
* @suppress PhanParamSignatureRealMismatchParamType, UnusedSuppression -- T308443 * @suppress PhanParamSignatureRealMismatchParamType, UnusedSuppression -- T308443
* @param ResourceLoaderContext $context * @param Context $context
* @return string JavaScript code * @return string JavaScript code
*/ */
public function getScript( ResourceLoaderContext $context ) { public function getScript( Context $context ) {
$languageCode = $context->getLanguage(); $languageCode = $context->getLanguage();
return ResourceLoader::makeConfigSetScript( $this->getData( $languageCode ) ); return ResourceLoader::makeConfigSetScript( $this->getData( $languageCode ) );
} }

View File

@@ -2,6 +2,7 @@
namespace UniversalLanguageSelector\Tests; namespace UniversalLanguageSelector\Tests;
use MediaWiki\ResourceLoader\Context;
use UniversalLanguageSelector\ResourceLoaderULSJsonMessageModule; use UniversalLanguageSelector\ResourceLoaderULSJsonMessageModule;
/** /**
@@ -15,7 +16,7 @@ class ResourceLoaderULSJsonMessageModuleTest extends \PHPUnit\Framework\TestCase
public function testAllReturnValues() { public function testAllReturnValues() {
$instance = new ResourceLoaderULSJsonMessageModule(); $instance = new ResourceLoaderULSJsonMessageModule();
$context = $this->createMock( \ResourceLoaderContext::class ); $context = $this->createMock( Context::class );
$context->method( 'getLanguage' ) $context->method( 'getLanguage' )
->willReturn( 'en' ); ->willReturn( 'en' );

View File

@@ -2,6 +2,7 @@
namespace UniversalLanguageSelector\Tests; namespace UniversalLanguageSelector\Tests;
use MediaWiki\ResourceLoader\Context;
use UniversalLanguageSelector\ResourceLoaderULSModule; use UniversalLanguageSelector\ResourceLoaderULSModule;
/** /**
@@ -15,7 +16,7 @@ class ResourceLoaderULSModuleTest extends \PHPUnit\Framework\TestCase {
public function testAllReturnValues() { public function testAllReturnValues() {
$instance = new ResourceLoaderULSModule(); $instance = new ResourceLoaderULSModule();
$context = $this->createMock( \ResourceLoaderContext::class ); $context = $this->createMock( Context::class );
$context->method( 'getLanguage' ) $context->method( 'getLanguage' )
->willReturn( 'en' ); ->willReturn( 'en' );