From 1ae400bb93916bbd82d68b1e9e37120029a1bfbc Mon Sep 17 00:00:00 2001 From: daniel Date: Sun, 11 Apr 2021 22:05:46 +0200 Subject: [PATCH] Remove some deprecated methods from the Language class The following methods and fields in the Language class, deprecated since 1.35, have been removed: - findVariantLink() - convertTitle() - updateConversionTable() - classFromCode() - clearCaches() - mConverter Change-Id: I9281f37be3a374e072d6afde8f352138af13adbe --- RELEASE-NOTES-1.37 | 9 +- languages/Language.php | 100 ------------------ .../languages/LanguageIntegrationTest.php | 18 ---- 3 files changed, 8 insertions(+), 119 deletions(-) diff --git a/RELEASE-NOTES-1.37 b/RELEASE-NOTES-1.37 index 565a5452372..0dd2705c402 100644 --- a/RELEASE-NOTES-1.37 +++ b/RELEASE-NOTES-1.37 @@ -73,7 +73,14 @@ because of Phabricator reports. === Breaking changes in 1.37 === * WANObjectCache::HOLDOFF_NONE, deprecated since 1.35, was removed. Use HOLDOFF_TTL_NONE instead. -* … +* The following methods and fields in the Language class, deprecated since + 1.35, have been removed: + - classFromCode() + - clearCaches() + - convertTitle() + - findVariantLink() + - mConverter + - updateConversionTable() === Deprecations in 1.37 === * JobQueue::getWiki, deprecated in 1.33, now emits deprecation warnings. diff --git a/languages/Language.php b/languages/Language.php index a46c06f60b9..1c6ca441c98 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -28,7 +28,6 @@ use MediaWiki\HookContainer\HookRunner; use MediaWiki\Languages\LanguageConverterFactory; use MediaWiki\Languages\LanguageFallback; use MediaWiki\Languages\LanguageNameUtils; -use MediaWiki\Linker\LinkTarget; use MediaWiki\Logger\LoggerFactory; use MediaWiki\MediaWikiServices; use MediaWiki\User\UserIdentity; @@ -63,23 +62,6 @@ class Language { */ public const SUPPORTED = LanguageNameUtils::SUPPORTED; - /** - * Use PHP's magic __get handler to handle lazy accessing to - * deprecated mConverter. - * - * @param string $name Field name - * @return mixed - */ - public function __get( string $name ) { - if ( $name == "mConverter" ) { - wfDeprecatedMsg( - 'Access to Language::$mConverter was deprecated in MediaWiki 1.35', - '1.35' ); - return $this->getConverter(); - } - throw new RuntimeException( "Cannot get '$name' property." ); - } - public $mCode; /** @@ -343,25 +325,6 @@ class Language { return MediaWikiServices::getInstance()->getLanguageFactory()->getLanguage( $code ); } - /** - * Intended for tests that may change configuration in a way that invalidates caches. - * - * @since 1.32 - * @deprecated since 1.35. Instead, reset all services and set Language::$mLangObjCache = []. - */ - public static function clearCaches() { - wfDeprecated( __METHOD__, '1.35' ); - - $services = MediaWikiServices::getInstance(); - - $services->resetServiceForTesting( 'LanguageFallback' ); - $services->resetServiceForTesting( 'LanguageNameUtils' ); - $services->resetServiceForTesting( 'LocalisationCache' ); - $services->resetServiceForTesting( 'LanguageFactory' ); - - self::$mLangObjCache = []; - } - /** * Checks whether any localisation is available for that language tag * in MediaWiki (MessagesXx.php exists). @@ -4268,19 +4231,6 @@ class Language { return $this->getConverter()->convert( $text ); } - /** - * Convert a Title object to a string in the preferred variant - * - * @deprecated since 1.35 use LanguageConverter::convertTitle - * - * @param Title $title - * @return string - */ - public function convertTitle( $title ) { - wfDeprecated( __METHOD__, '1.35' ); - return $this->getConverter()->convertTitle( $title ); - } - /** * Convert a namespace index to a string in the preferred variant * @@ -4381,25 +4331,6 @@ class Language { return $this->getConverter()->getURLVariant(); } - /** - * If a language supports multiple variants, it is - * possible that non-existing link in one variant - * actually exists in another variant. this function - * tries to find it. See e.g. LanguageZh.php - * The input parameters may be modified upon return - * - * @deprecated since 1.35 use LanguageConverter::findVariantLink instead - * - * @param string &$link The name of the link - * @param Title &$nt The title object of the link - * @param bool $ignoreOtherCond To disable other conditions when - * we need to transclude a template or update a category's link - */ - public function findVariantLink( &$link, &$nt, $ignoreOtherCond = false ) { - wfDeprecated( __METHOD__, '1.35' ); - $this->getConverter()->findVariantLink( $link, $nt, $ignoreOtherCond ); - } - /** * returns language specific options used by User::getPageRenderHash() * for example, the preferred language variant @@ -4412,19 +4343,6 @@ class Language { return $this->getConverter()->getExtraHashOptions(); } - /** - * Refresh the cache of conversion tables when - * MediaWiki:Conversiontable* is updated. - * - * @deprecated since 1.35 use LanguageConverter::updateConversionTable instead - * - * @param LinkTarget $linkTarget The LinkTarget of the page being updated - */ - public function updateConversionTable( LinkTarget $linkTarget ) { - wfDeprecated( __METHOD__, '1.35' ); - $this->getConverter()->updateConversionTable( $linkTarget ); - } - /** * A regular expression to match legal word-trailing characters * which should be merged onto a link of the form [[foo]]bar. @@ -4515,24 +4433,6 @@ class Language { return str_replace( '_', '-', strtolower( $m[1] ) ); } - /** - * @deprecated since 1.35, this is an internal method and should not need - * to be used elsewhere - * - * @param string $code - * @param bool $fallback Whether we're going through language fallback chain - * @return string Name of the language class - */ - public static function classFromCode( $code, $fallback = true ) { - wfDeprecated( __METHOD__, '1.35' ); - - if ( $fallback && $code == 'en' ) { - return 'Language'; - } else { - return 'Language' . str_replace( '-', '_', ucfirst( $code ) ); - } - } - /** * Get the name of a file for a certain language code * diff --git a/tests/phpunit/languages/LanguageIntegrationTest.php b/tests/phpunit/languages/LanguageIntegrationTest.php index c1a4d1751ab..bee3bae7bf7 100644 --- a/tests/phpunit/languages/LanguageIntegrationTest.php +++ b/tests/phpunit/languages/LanguageIntegrationTest.php @@ -6,7 +6,6 @@ use MediaWiki\Languages\LanguageConverterFactory; use MediaWiki\Languages\LanguageFallback; use MediaWiki\Languages\LanguageNameUtils; use MediaWiki\MediaWikiServices; -use Wikimedia\TestingAccessWrapper; /** * @group Language @@ -1844,23 +1843,6 @@ class LanguageIntegrationTest extends LanguageClassesTestCase { $this->assertEquals( "a{$c}b{$c}c{$and}{$s}d", $lang->listToText( [ 'a', 'b', 'c', 'd' ] ) ); } - /** - * @covers Language::clearCaches - */ - public function testClearCaches() { - $this->hideDeprecated( 'Language::clearCaches' ); - - $languageClass = TestingAccessWrapper::newFromClass( Language::class ); - - // Populate $mLangObjCache - $lang = Language::factory( 'en' ); - $this->assertNotCount( 0, Language::$mLangObjCache ); - - Language::clearCaches(); - - $this->assertSame( [], Language::$mLangObjCache ); - } - /** * @dataProvider provideGetParentLanguage * @covers Language::getParentLanguage