MediaWiki  master
Deprecated List
Member $wgLogoHD
since 1.35. Developers should retrieve this logo (and other variants) using the static function MediaWiki\ResourceLoader\SkinModule::getAvailableLogos. $wgLogos should be used instead.
Member $wgUser
since 1.35, use an available context source when possible, or, as a backup, RequestContext::getMain()
Member Action::exists (string $name)
since 1.38 use (bool)ActionFactory::getAction()
Member Article::__get ( $fname)
since 1.35, use Article::getPage() instead
Member Article::__set ( $fname, $fvalue)
since 1.35, use Article::getPage() instead
Member BagOStuff::decr ( $key, $value=1, $flags=0)
Since 1.38
Member BagOStuff::incr ( $key, $value=1, $flags=0)
Since 1.38
Member DB_MASTER
since 1.36, Use DB_PRIMARY instead
Member DBO_SSL
since 1.39, use the "ssl" parameter
Class ExternalStore
since 1.34 Use the ExternalStoreAccess service instead.
Member Hooks::clear ( $name)
since 1.35. Instead of using Hooks::register() and Hooks::clear(), use HookContainer::scopedRegister() instead to register a temporary hook
Member Hooks::register ( $name, $callback)
since 1.35. use HookContainer::register() instead
Member Hooks::run ( $event, array $args=[], $deprecatedVersion=null)
since 1.35 Use HookContainer::run() instead
Class Http

since 1.34

Member Http::get ( $url, array $options=[], $caller=__METHOD__)
since 1.34, use HttpRequestFactory::get()
Member Http::getProxy ()
since 1.34, use $wgHTTPProxy directly
Member Http::post ( $url, array $options=[], $caller=__METHOD__)
since 1.34, use HttpRequestFactory::post()
Member Http::request ( $method, $url, array $options=[], $caller=__METHOD__)
since 1.34, use HttpRequestFactory::request()
Member Http::userAgent ()
since 1.34, use HttpRequestFactory::getUserAgent()
Class IExpiringStore
since 1.35
Member Job::factory ( $command, $params=[])
since 1.40, use JobFactory instead.
Member Language::ALL
since 1.34, use LanguageNameUtils::ALL
Member LocalFile::lock ()
since 1.38 Use acquireFileLock()
Member $wgAllowImageTag
since 1.35; register an extension tag named
Member $wgContentHandlerTextFallback
since 1.37
Member $wgMaximalPasswordLength
since 1.26, use $wgPasswordPolicy's MaximalPasswordLength.
Member $wgMinimalPasswordLength
since 1.26, use $wgPasswordPolicy's MinimalPasswordLength.
Member $wgOpenSearchTemplate
since 1.25 Use $wgOpenSearchTemplates['application/x-suggestions+json'] instead
Member $wgSquidPurgeUseHostHeader
since 1.33
Member $wgTrackingCategories
since 1.25 Extensions should now register tracking categories using the new extension registration system.
Member $wgUploadStashScalerBaseUrl
since 1.36 Use thumbProxyUrl in $wgLocalFileRepo
Member AbstractContent::fillParserOutput (Title $title, $revId, ParserOptions $options, $generateHtml, ParserOutput &$output)
since 1.38. Hard-deprecated since 1.38. Use ContentHandler::fillParserOutput instead.
Member AbstractContent::getNativeData ()
since 1.33 use getText() for TextContent instances. For other content models, use specialized getters.
Member AbstractContent::getParserOutput (Title $title, $revId=null, ParserOptions $options=null, $generateHtml=true)
since 1.38. Hard-deprecated since 1.38. Use ContentRenderer::getParserOutput instead. Extensions defining a content model should override ContentHandler::fillParserOutput.
Member AbstractContent::getRedirectChain ()
since 1.38, use getRedirectTarget() instead. Emitting deprecation warnings since 1.39. Support for redirect chains has been removed.
Member AbstractContent::getUltimateRedirectTarget ()
since 1.38, use getRedirectTarget() instead. Emitting deprecation warnings since 1.39. Support for redirect chains has been removed.
Member AbstractContent::preloadTransform (Title $title, ParserOptions $popts, $params=[])
since 1.37. Hard-deprecated since 1.37. Use ContentTransformer::preloadTransform instead. Extensions defining a content model should override ContentHandler::preloadTransform.
Member AbstractContent::prepareSave (WikiPage $page, $flags, $parentRevId, User $user)
since 1.38. Hard-deprecated since 1.38. Use ContentHandler::validateSave instead.
Member AbstractContent::preSaveTransform (Title $title, User $user, ParserOptions $popts)
since 1.37. Hard-deprecated since 1.37. Use ContentTransformer::preSaveTransform instead. Extensions defining a content model should override ContentHandler::preSaveTransform.
Member ApiBase::PARAM_ALL
since 1.35, use ParamValidator::PARAM_ALL instead
Member ApiBase::PARAM_ALLOW_DUPLICATES
since 1.35, use ParamValidator::PARAM_ALLOW_DUPLICATES instead
Member ApiBase::PARAM_DEPRECATED
since 1.35, use ParamValidator::PARAM_DEPRECATED instead
Member ApiBase::PARAM_DEPRECATED_VALUES
since 1.35, use EnumDef::PARAM_DEPRECATED_VALUES instead
Member ApiBase::PARAM_DFLT
since 1.35, use ParamValidator::PARAM_DEFAULT instead
Member ApiBase::PARAM_EXTRA_NAMESPACES
since 1.35, use NamespaceDef::PARAM_EXTRA_NAMESPACES instead
Member ApiBase::PARAM_ISMULTI
since 1.35, use ParamValidator::PARAM_ISMULTI instead
Member ApiBase::PARAM_ISMULTI_LIMIT1
since 1.35, use ParamValidator::PARAM_ISMULTI_LIMIT1 instead
Member ApiBase::PARAM_ISMULTI_LIMIT2
since 1.35, use ParamValidator::PARAM_ISMULTI_LIMIT2 instead
Member ApiBase::PARAM_MAX
since 1.35, use IntegerDef::PARAM_MAX instead
Member ApiBase::PARAM_MAX2
since 1.35, use IntegerDef::PARAM_MAX2 instead
Member ApiBase::PARAM_MAX_BYTES
since 1.35, use StringDef::PARAM_MAX_BYTES instead
Member ApiBase::PARAM_MAX_CHARS
since 1.35, use StringDef::PARAM_MAX_CHARS instead
Member ApiBase::PARAM_MIN
since 1.35, use IntegerDef::PARAM_MIN instead
Member ApiBase::PARAM_RANGE_ENFORCE
since 1.35
Member ApiBase::PARAM_REQUIRED
since 1.35, use ParamValidator::PARAM_REQUIRED instead
Member ApiBase::PARAM_SENSITIVE
since 1.35, use ParamValidator::PARAM_SENSITIVE instead
Member ApiBase::PARAM_SUBMODULE_MAP
since 1.35, use SubmoduleDef::PARAM_SUBMODULE_MAP instead
Member ApiBase::PARAM_SUBMODULE_PARAM_PREFIX
since 1.35, use SubmoduleDef::PARAM_SUBMODULE_PARAM_PREFIX instead
Member ApiBase::PARAM_TYPE
since 1.35, use ParamValidator::PARAM_TYPE instead
Member ApiBase::PARAM_VALUE_LINKS
since 1.35
Class ApiErrorFormatter_BackCompat

Only for backwards compatibility, do not use

Member ApiPageSet::getGoodAndMissingTitles ()
since 1.37, use getGoodAndMissingPages() instead.
Member ApiPageSet::getGoodTitles ()
since 1.37, use getGoodPages() instead.
Member ApiPageSet::getMissingTitles ()
since 1.37, use getMissingPages instead.
Member ApiPageSet::getRedirectTitles ()
since 1.37, use getRedirectTargets instead.
Member ApiPageSet::getSpecialTitles ()
since 1.37, use getSpecialPages() instead.
Member ApiPageSet::getTitles ()
since 1.37, use getPages() instead.
Member ApiQuery::getNamedDB ( $name, $db, $groups)
since 1.39 Use or override ApiBase::getDB() and optionally pass a query group to wfGetDB() or ILoadBalancer::getConnectionRef().
Member ApiQueryBase::selectNamedDB ( $name, $db, $groups)
since 1.39 Use or override ApiBase::getDB() and optionally pass a query group to wfGetDB() or ILoadBalancer::getConnectionRef().
Class ApiQueryDeletedrevs
since 1.25
Member ArchivedFile::getMetadata ()
since 1.37 use getMetadataArray() or getMetadataItem()
Member Article::$mContext
since 1.35, must be private, use getContext
Member Article::$mParserOutput
since 1.32
Member Article::doDelete ( $reason, $suppress=false, $immediate=false)
since 1.37, hard deprecated since 1.38. Use WikiPage::doDeleteArticleReal if you only need to delete the article. If you also need things to happen with OutputPage, you may want to check the hooks in DeleteAction instead.
Member Article::getTimestamp ()
since 1.35, use WikiPage::getTimestamp instead
Member AutoloadGenerator::setPsr4Namespaces (array $namespaces)
since 1.40 - PSR-4 classes are now included in the generated classmap
Member BacklinkCache::get (PageReference $page)
since 1.37 Use BacklinkCacheFactory::getBacklinkCache() instead. Hard deprecated in 1.40.
Member BacklinkCache::getCascadeProtectedLinks ()
since 1.37, use getCascadeProtectedLinkPages(). Hard deprecated in 1.40.
Member BacklinkCache::getLinks ( $table, $startId=false, $endId=false, $max=INF)
in 1.37, use getLinkPages(). Hard deprecated in 1.40.
Member BagOStuff::addBusyCallback (callable $workCallback)
since 1.39
Member BagOStuff::clearLastError ()
Since 1.38
Member BagOStuff::setNewPreparedValues (array $valueByKey)
Since 1.40
Member BaseSearchResultSet::free ()
noop since 1.34
Member BaseSearchResultSet::next ()
since 1.32; Use self::extractResults() or foreach
Member BaseSearchResultSet::rewind ()
since 1.32; Use self::extractResults() or foreach
Member BaseSearchResultSet::termMatches ()
since 1.34 (use SqlSearchResult)
Member BaseTemplate::getAfterPortlet ( $name)
since 1.35 (emits deprecation warnings since 1.37), use Skin::getAfterPortlet directly
Member BaseTemplate::getFooterIcons ( $option=null)
since 1.35 read footer icons from template data requested via $this->get('footericons')
Member BaseTemplate::getToolbox ()
since 1.35. To add items to the toolbox, use SidebarBeforeOutput hook. To get the toolbox only use $this->data['sidebar']['TOOLBOX'], if you are extending this class.
Member BaseTemplate::getTrail ()
1.39
Member BaseTemplate::printTrail ()
1.39
Member BaseTemplate::renderAfterPortlet ( $name)
since 1.35 (emits deprecation warnings since 1.37), use Skin::getAfterPortlet directly
Member BotPassword::invalidateAllPasswordsForCentralId ( $centralId)
since 1.37
Member BotPassword::removeAllPasswordsForCentralId ( $centralId)
since 1.37
Member Category::getTitle ()
since 1.37, use getPage() instead.
Member CentralIdLookup::factory ( $providerId=null)
since 1.37 Use MediaWikiServices to obtain an instance.
Member CentralIdLookup::factoryNonLocal ()
since 1.37. Use CentralIdLookupFactory::getNonLocalLookup instead.
Member ChangesList::getTimestamp ( $rc)
use revDateLink instead.
Member ConfigFactory::getDefaultInstance ()
since 1.27, use MediaWikiServices::getInstance()->getConfigFactory() instead.
Member Content::getNativeData ()
since 1.33 use getText() for TextContent instances. For other content models, use specialized getters.
Member Content::getParserOutput (Title $title, $revId=null, ParserOptions $options=null, $generateHtml=true)
since 1.38. Hard-deprecated since 1.38. Use ContentRenderer::getParserOutput and override ContentHandler::fillParserOutput.
Member Content::preloadTransform (Title $title, ParserOptions $parserOptions, $params=[])
since 1.37. Hard-deprecated since 1.37. Use ContentTransformer::preloadTransform and override ContentHandler::preloadTransform.
Member Content::prepareSave (WikiPage $page, $flags, $parentRevId, User $user)
since 1.38. Hard-deprecated since 1.38. Use ContentHandler::validateSave instead.
Member Content::preSaveTransform (Title $title, User $user, ParserOptions $parserOptions)
since 1.37. Hard-deprecated since 1.37. Use ContentTransformer::preSaveTransform and override ContentHandler::preSaveTransform.
Member ContentHandler::getAllContentFormats ()
since 1.35, use ContentHandlerFactory::getAllContentFormats
Member ContentHandler::getContentModels ()
since 1.35, use ContentHandlerFactory::getContentModels
Member ContentHandler::getContentText (Content $content=null)
since 1.37, use Content::getText() for TextContent instances instead
Member ContentHandler::getDefaultModelFor (Title $title)
since 1.33, use SlotRoleHandler::getDefaultModel() together with SlotRoleRegistry::getRoleHandler().
Member ContentHandler::getForContent (Content $content)
since 1.35, instead use ContentHandlerFactory::getContentHandler( $content->getModel() ).
Member ContentHandler::getForModelID ( $modelId)
since 1.35, use ContentHandlerFactory::getContentHandler
Member ContentHandler::getForTitle (Title $title)
since 1.35, hard deprecated since 1.37 Use ContentHandlerFactory::getContentHandler( $title->getContentModel() ) instead
Member ContentHandler::getSlotDiffRendererInternal (IContextSource $context)
use getSlotDiffRendererWithOptions instead
Member ContentModelChange::checkPermissions ()
since 1.36. Use ::probablyCanChange or ::authorizeChange instead.
Member ContribsPager::preventClickjacking ()
since 1.38, use ::setPreventClickjacking() instead
Member CoreParserFunctions::mwnamespace ( $parser, $title=null)
Use CoreParserFunctions::namespace() instead.
Member DateFormatter::getInstance (Language $lang=null)
since 1.33 use MediaWikiServices::getDateFormatterFactory()
File DefaultSettings.php
since 1.39
Member DifferenceEngine::generateContentDiffBody (Content $old, Content $new)
since 1.32, use a SlotDiffRenderer instead.
Member DifferenceEngine::generateTextDiffBody ( $otext, $ntext)
since 1.32, use a TextSlotDiffRenderer instead.
Member DifferenceEngine::getExtraCacheKeys ()
Member DifferenceEngine::setContent (Content $oldContent, Content $newContent)
since 1.32, use setRevisions or ContentHandler::getSlotDiffRenderer.
Class DifferenceEngineSlotDiffRenderer

Member EditPage::$action
for public usage since 1.38 with no replacement
Member EditPage::addNewLineAtEnd ( $wikitext)
since 1.38 Use TextboxBuilder::addNewLineAtEnd instead.
Member ExtensionProcessor::getExtraAutoloaderPaths ( $dir, array $info)
since 1.39, use getExtractedAutoloadInfo instead
Member ExternalStore::batchFetchFromURLs (array $urls)
since 1.34
Member ExternalStore::fetchFromURL ( $url, array $params=[])
since 1.34
Member ExternalStore::getStoreObject ( $proto, array $params=[])
since 1.34
Member ExternalStore::insert ( $url, $data, array $params=[])
since 1.34
Member ExternalStore::insertToDefault ( $data, array $params=[])
since 1.34
Member ExternalStore::insertToForeignDefault ( $data, $wiki)
since 1.34 Use insertToDefault() with 'wiki' set
Member ExternalStore::insertWithFallback (array $tryStores, $data, array $params=[])
since 1.34
Member File::getMetadata ()
since 1.37 use getMetadataArray() or getMetadataItem()
Member FileBackend::getWikiId ()
Since 1.34 Use getDomainId()
Member FormSpecialPage::postText ()
since 1.38, use postHtml() instead
Member FormSpecialPage::preText ()
since 1.38, use preHtml() instead
Member Hooks::getHandlers ( $name)
since 1.35
Member Hooks::isRegistered ( $name)
since 1.35. use HookContainer::isRegistered() instead
Member Hooks::runWithoutAbort ( $event, array $args=[], $deprecatedVersion=null)
since 1.35 Use HookContainer::run() with 'abortable' option instead
Member HTMLForm::addFooterText ( $msg, $section=null)
since 1.38, use addFooterHtml() instead
Member HTMLForm::addHeaderText ( $msg, $section=null)
since 1.38, use addHeaderHtml() instead
Member HTMLForm::addPostText ( $msg)
since 1.38, use addPostHtml() instead
Member HTMLForm::addPreText ( $msg)
since 1.38, use addPreHtml() instead
Member HTMLForm::getFooterText ( $section=null)
since 1.38, use getFooterHtml() instead
Member HTMLForm::getHeaderText ( $section=null)
since 1.38, use getHeaderHtml() instead
Member HTMLForm::getPreText ()
since 1.38, use getPreHtml() instead
Member HTMLForm::loadData ()
since 1.39, Use prepareForm() instead.
Member HTMLForm::setFooterText ( $msg, $section=null)
since 1.38, use setFooterHtml() instead
Member HTMLForm::setHeaderText ( $msg, $section=null)
since 1.38, use setHeaderHtml() instead
Member HTMLForm::setIntro ( $msg)
since 1.38, use setPreHtml() instead
Member HTMLForm::setPostText ( $msg)
since 1.38, use setPostHtml() instead
Member HTMLForm::setPreText ( $msg)
since 1.38, use setPreHtml() instead
Member HTMLFormField::getNearestFieldByName ( $alldata, $name, $asDisplay=false)
since 1.38 Use getNearestFieldValue() instead.
Member Http::createMultiClient (array $options=[])
since 1.34, use MediaWikiServices::getHttpRequestFactory()->createMultiClient()
Member Http::isValidURI ( $uri)
since 1.34, use MWHttpRequest::isValidURI
Member ImageHistoryList::preventClickjacking ( $enable=true)
since 1.38, use ::setPreventClickjacking() instead
Member ImageHistoryPseudoPager::preventClickjacking ( $enable=true)
since 1.38, use ::setPreventClickjacking()
Member ImportableOldRevision::getUserObj ()
since 1.39, use {
Member ImportableUploadRevision::getUserObj ()
since 1.39, use {
Member ImportableUploadRevisionImporter::downloadSource (ImportableUploadRevision $wikiRevision)
DO NOT CALL ME.
Member IndexPager::buildPrevNextNavigation (Title $title, $offset, $limit, array $query=[], $atend=false)
since 1.39 Use PagerNavigationBuilder instead
Member IndexPager::getHookContainer ()
and emits warnings since 1.40 Inject a HookContainer instead
Member IndexPager::getLimitLinks ()
since 1.39 Use PagerNavigationBuilder instead
Member IndexPager::getPagingLinks ( $linkTexts, $disabledTexts=[])
since 1.39 Use PagerNavigationBuilder instead
Member JobQueue::getWiki ()
since 1.33 (hard deprecated since 1.37)
Member JobSpecification::getTitle ()
since 1.37.
Member Language::$dateFormatStrings
since 1.35, must be private
Member Language::$durationIntervals
since 1.35, use the DURATION_INTERVALS constant
Member Language::$mExtendedSpecialPageAliases
since 1.35, must be protected
Member Language::$mMagicExtensions
since 1.35, use LocalisationCache with custom language config
Member Language::$mMonthAbbrevMsgs
since 1.35, use the MONTH_ABBREVIATED_MESSAGES constant
Member Language::$mMonthMsgs
since 1.35, use the MONTH_MESSAGES constant
Member Language::autoConvert ( $text, $variant=false)
since 1.35 use LanguageConverter::autoConvert
Member Language::autoConvertToAllVariants ( $text)
since 1.35 use LanguageConverter::autoConvertToAllVariants
Member Language::commafy ( $number)
in 1.36 use formatNum
Member Language::convert ( $text)
since 1.35 use LanguageConverter::convert
Member Language::convertCategoryKey ( $key)
since 1.35 use LanguageConverter::convertCategoryKey instead
Member Language::convertHtml ( $text)
since 1.35 use LanguageConverter::convertHtml instead
Member Language::convertNamespace ( $ns, $variant=null)
since 1.35 use LanguageConverter::convertNamespace instead
Member Language::factory ( $code)
since 1.35, use LanguageFactory
Member Language::fetchLanguageName ( $code, $inLanguage=LanguageNameUtils::AUTONYMS, $include=LanguageNameUtils::ALL)
since 1.34, use LanguageNameUtils::getLanguageName.
Member Language::fetchLanguageNames ( $inLanguage=LanguageNameUtils::AUTONYMS, $include=LanguageNameUtils::DEFINED)
since 1.34, use LanguageNameUtils::getLanguageNames. Hard-deprecated since 1.40.
Member Language::getConverter ()
since 1.35 Use MediaWikiServices::getInstance()->getLanguageConverterFactory() ->getLanguageConverter( $language ) instead
Member Language::getConvRuleTitle ()
since 1.35 use LanguageConverter::getConvRuleTitle instead
Member Language::getDefaultVariant ()
since 1.35 use LanguageConverter::getDefaultVariant instead
Member Language::getExtraHashOptions ()
since 1.35 use LanguageConverter::getExtraHashOptions instead
Member Language::getFallbackFor ( $code)
since 1.35, use LanguageFallback::getFirst. Hard-deprecated since 1.40.
Member Language::getFallbacksFor ( $code, $mode=LanguageFallback::MESSAGES)
since 1.35, use LanguageFallback::getAll. Hard-deprecated since 1.40.
Member Language::getFallbacksIncludingSiteLanguage ( $code)
since 1.35, use LanguageFallback::getAllIncludingSiteLanguage. Hard-deprecated since 1.40.
Member Language::getFileName ( $prefix, $code, $suffix='.php')
since 1.34, use LanguageNameUtils, hard-deprecated since 1.40
Member Language::getJsonMessagesFileName ( $code)
since 1.34, use LanguageNameUtils, hard-deprecated since 1.40
Member Language::getLocalisationCache ()
since 1.34, use MediaWikiServices
Member Language::getMessageFor ( $key, $code)
since 1.35, use LocalisationCache directly
Member Language::getMessageKeysFor ( $code)
since 1.35, use LocalisationCache directly
Member Language::getMessagesFileName ( $code)
since 1.34, use LanguageNameUtils, hard-deprecated since 1.40
Member Language::getMessagesFor ( $code)
since 1.35, use LocalisationCache directly
Member Language::getParentLanguage ()
since 1.35, use LanguageFactory::getParentLanguage
Member Language::getPreferredVariant ()
since 1.35 use LanguageConverter::getPreferredVariant instead
Member Language::getURLVariant ()
since 1.35 use LanguageConverter::getURLVariant instead
Member Language::getVariants ()
since 1.35 use LanguageConverter::getVariants instead
Member Language::hasVariant ( $variant)
since 1.35 use LanguageConverter::hasVariant instead
Member Language::hasVariants ()
since 1.35 use LanguageConverter::hasVariants instead
Member Language::isKnownLanguageTag ( $tag)
since 1.34, use LanguageNameUtils. Hard-deprecated since 1.40.
Member Language::isSupportedLanguage ( $code)
since 1.34, use LanguageNameUtils. Hard-deprecated since 1.40.
Member Language::isValidBuiltInCode ( $code)
since 1.34, use LanguageNameUtils. Hard-deprecated since 1.40.
Member Language::isValidCode ( $code)
since 1.34, use LanguageNameUtils. Hard-deprecated since 1.40.
Member Language::isWellFormedLanguageTag ( $code, $lenient=false)
since 1.39, use LanguageCode::isWellFormedLanguageTag
Member Language::MESSAGES_FALLBACKS
since 1.35, use LanguageFallback::MESSAGES
Member Language::resetNamespaces ()
since 1.39 Use MediaWikiServices::resetServiceForTesting() instead.
Member Language::STRICT_FALLBACKS
since 1.35, use LanguageFallback::STRICT
Member Language::SUPPORTED
since 1.34, use LanguageNameUtils::SUPPORTED
Member Licenses::getLicenses ()
since 1.31 Use getLines() instead
Member LinkBatch::__construct (iterable $arr=[], ?LinkCache $linkCache=null, ?TitleFormatter $titleFormatter=null, ?Language $contentLanguage=null, ?GenderCache $genderCache=null, ?ILoadBalancer $loadBalancer=null, ?LinksMigration $linksMigration=null, ?LoggerInterface $logger=null)
since 1.35 Use newLinkBatch of the LinkBatchFactory service instead
Member LinkCache::addGoodLinkObj ( $id, $page, $len=-1, $redir=null, $revision=0, $model=null, $lang=null)
since 1.37, use addGoodLinkObjFromRow() instead. PHPUnit tests must use LinkCacheTestTrait::addGoodLinkObject().
Member LinkCache::addLinkObj ( $page, int $queryFlags=IDBAccessObject::READ_NORMAL)
since 1.37, use PageStore::getPageForLink() instead.
Member LocalFile::getMetadata ()
since 1.37 use getMetadataArray() or getMetadataItem()
Member LocalFile::unlock ()
since 1.38 Use releaseFileLock()
Member LockManagerGroup::getAny ()
since 1.35, seemingly unused, just call get() and catch any exception instead
Member LockManagerGroup::getDefault ()
since 1.35, seemingly unused, just call get() and catch any exception instead
Member Maintenance::$mArgList
since 1.39, use $this->parameters instead.
Member Maintenance::$mArgs
since 1.39, use $this->parameters instead.
Member Maintenance::$mDescription
since 1.39, use $this->parameters instead.
Member Maintenance::$mInputLoaded
since 1.39, treat as private to the Maintenance base class
Member Maintenance::$mOptions
since 1.39, use $this->parameters instead.
Member Maintenance::$mParams
since 1.39, use $this->parameters instead.
Member Maintenance::$orderedOptions
since 1.39, use $this->parameters instead.
Member Maintenance::adjustMemoryLimit ()
since 1.39, now controlled by MaintenanceRunner
Member Maintenance::globals ()
since 1.39, now controlled by MaintenanceRunner.
Member Maintenance::loadSettings ()
since 1.39.
Member Maintenance::setAgentAndTriggers ()
since 1.37 No longer needed.
Member Maintenance::shouldExecute ()
since 1.39, use MaintenanceRunner::shouldExecute().
Member ManualLogEntry::setTags ( $tags)
since 1.33 Please use addTags() instead. Hard deprecated since 1.39.
Member MediaHandler::getImageSize ( $image, $path)
since 1.37, override getSizeAndMetadata instead
Member MediaHandler::getMetadata ( $image, $path)
since 1.37 override getSizeAndMetadata() instead
Member MediaHandler::isMetadataValid ( $image, $metadata)
since 1.37 use isFileMetadataValid
Member MediaTransformOutput::streamFile ( $headers=[])
since 1.26, use streamFileWithStatus
Member MediaWiki\Actions\ActionFactory::actionExists (string $actionName)
since 1.38
Member MediaWiki\Auth\AbstractAuthenticationProvider::setConfig (Config $config)
since 1.37.
Member MediaWiki\Auth\AbstractAuthenticationProvider::setHookContainer (HookContainer $hookContainer)
since 1.37.
Member MediaWiki\Auth\AbstractAuthenticationProvider::setLogger (LoggerInterface $logger)
since 1.37.
Member MediaWiki\Auth\AbstractAuthenticationProvider::setManager (AuthManager $manager)
since 1.37.
Member MediaWiki\Auth\AuthenticationProvider::setConfig (Config $config)
since 1.37.
Member MediaWiki\Auth\AuthenticationProvider::setHookContainer (HookContainer $hookContainer)
since 1.37.
Member MediaWiki\Auth\AuthenticationProvider::setManager (AuthManager $manager)
since 1.37.
Member MediaWiki\Auth\AuthManager::checkAccountCreatePermissions (Authority $creator)
since 1.39, use ::authorizeCreateAccount or ::probablyCanCreateAccount instead
Member MediaWiki\Auth\AuthManager::forcePrimaryAuthenticationProviders (array $providers, $why)
For backwards compatibility only
Member MediaWiki\Block\AbstractBlock::getPermissionsError (IContextSource $context)
since 1.35 Use BlockErrorFormatter::getMessage instead, and build the array using Message::getKey and Message::getParams.Hard deprecated since 1.40.
Member MediaWiki\Block\AbstractBlock::getReason ()
since 1.35. Use getReasonComment instead.
Member MediaWiki\Block\DatabaseBlock::delete ()
since 1.36 Use DatabaseBlockStore::deleteBlock instead.
Member MediaWiki\Block\DatabaseBlock::getReason ()
since 1.35.
Member MediaWiki\Block\DatabaseBlock::insert (IDatabase $dbw=null)
since 1.36 Use DatabaseBlockStore::insertBlock instead.
Member MediaWiki\Block\DatabaseBlock::purgeExpired ()
since 1.36, hard deprecated since 1.38 Use DatabaseBlockStore::purgeExpiredBlocks instead.
Member MediaWiki\Block\DatabaseBlock::update ()
since 1.36 Use DatabaseBlockStore::updateBlock instead.
Class MediaWiki\Block\SystemBlock
since 1.40. GlobalBlocks are now added into CompositeBlocks via the GetUserBlock hook
Member MediaWiki\CommentStore\CommentStore::getStore ()
in 1.31 Use DI to inject a CommentStore instance into your class. Hard-deprecated since 1.40.
Class MediaWiki\Content\Hook\SearchDataForIndexHook

since 1.40, use SearchDataForIndexHook2 instead.

Member MediaWiki\Content\ValidationParams::getParentRevisionId ()
since 1.38.
Member MediaWiki\Deferred\LinksUpdate\LinksUpdate::getAddedLinks ()
since 1.38 use getPageReferenceIterator() or getPageReferenceArray()
Member MediaWiki\Deferred\LinksUpdate\LinksUpdate::getRemovedLinks ()
since 1.38 use getPageReferenceIterator() or getPageReferenceArray()
Member MediaWiki\Deferred\LinksUpdate\TitleLinksTable::getTitleArray ( $setType)
since 1.38
Class MediaWiki\Edit\PreparedEdit
since 1.32; Since 1.37, use PreparedUpdate instead.
Member MediaWiki\Edit\PreparedEdit::__get ( $name)
since 1.33
Member MediaWiki\Feed\FeedUtils::formatDiffRow ( $title, $oldid, $newid, $timestamp, $comment, $actiontext='')
since 1.38 use formatDiffRow2
Class MediaWiki\Hook\AddNewAccountHook

since 1.27. Use LocalUserCreated instead.

Class MediaWiki\Hook\EditPageBeforeEditToolbarHook

since 1.36 Use one of the many other EditPage hooks instead

Class MediaWiki\Hook\LocalFile__getHistoryHook

since 1.37

Class MediaWiki\Hook\MagicWordwgVariableIDsHook

since 1.35, use GetMagicVariableIDsHook instead.

Class MediaWiki\Hook\ParserTestTablesHook
No longer invoked by MW 1.36+
Class MediaWiki\Hook\PersonalUrlsHook

since 1.39 Use SkinTemplateNavigation__Universal instead.

Member MediaWiki\Hook\PersonalUrlsHook::onPersonalUrls (&$personal_urls, &$title, $skin)
since 1.39 Use SkinTemplateNavigation__Universal instead.
Class MediaWiki\Hook\ProtectionForm__buildFormHook

since 1.36, use ProtectionFormAddFormFields

Class MediaWiki\Hook\SkinTemplateNavigation__SpecialPageHook
since 1.39 Use SkinTemplateNavigation__Universal instead
Member MediaWiki\Hook\SkinTemplateNavigation__SpecialPageHook::onSkinTemplateNavigation__SpecialPage ( $sktemplate, &$links)
since 1.39 Use SkinTemplateNavigation__Universal::onSkinTemplateNavigation__Universal instead
Class MediaWiki\Hook\SkinTemplateNavigationHook
since 1.39 Use SkinTemplateNavigation__Universal instead
Member MediaWiki\Hook\SkinTemplateNavigationHook::onSkinTemplateNavigation ( $sktemplate, &$links)
since 1.39 Use SkinTemplateNavigation__Universal::onSkinTemplateNavigation__Universal instead
Class MediaWiki\Hook\SpecialMuteSubmitHook

since 1.35, used only for instrumentation on Special:Mute

Member MediaWiki\HookContainer\HookRunner::onSkinTemplateNavigation ( $sktemplate, &$links)
since 1.39 Use onSkinTemplateNavigation__Universal instead
Member MediaWiki\HookContainer\HookRunner::onSkinTemplateNavigation__SpecialPage ( $sktemplate, &$links)
since 1.39 Use onSkinTemplateNavigation__Universal instead
Class MediaWiki\Interwiki\Hook\InterwikiLoadPrefixHook
Does not support enumerating all valid prefixes; for testing purposes (re)set $wgInterwikiCache instead.
Member MediaWiki\Languages\LanguageConverterFactory::isTitleConversionDisabled ()
since 1.36 Should use ::isLinkConversionDisabled() instead
Member MediaWiki\Linker\Linker::commentBlock ( $comment, $title=null, $local=false, $wikiId=null, $useParentheses=true)
since 1.38 use CommentFormatter
Member MediaWiki\Linker\Linker::formatComment ( $comment, $title=null, $local=false, $wikiId=null)
since 1.38 use CommentFormatter
Member MediaWiki\Linker\Linker::formatLinksInComment ( $comment, $title=null, $local=false, $wikiId=null)
since 1.38 use CommentFormatter
Member MediaWiki\Linker\Linker::link ( $target, $html=null, $customAttribs=[], $query=[], $options=[])
since 1.28, use MediaWiki\Linker\LinkRenderer instead
Member MediaWiki\Linker\Linker::linkKnown ( $target, $html=null, $customAttribs=[], $query=[], $options=[ 'known'])
since 1.28, use MediaWiki\Linker\LinkRenderer instead
Member MediaWiki\Linker\Linker::revComment (RevisionRecord $revRecord, $local=false, $isPublic=false, $useParentheses=true)
since 1.38 use CommentFormatter
Class MediaWiki\Logger\Monolog\LegacyFormatter
since 1.32
Member MediaWiki\MainConfigNames::AllowImageTag
since 1.35; register an extension tag named
Member MediaWiki\MainConfigNames::ContentHandlerTextFallback
since 1.37
Member MediaWiki\MainConfigNames::LogoHD
since 1.35. Developers should retrieve this logo (and other variants) using the static function MediaWiki\ResourceLoader\SkinModule::getAvailableLogos. $wgLogos should be used instead.
Member MediaWiki\MainConfigNames::MaximalPasswordLength
since 1.26, use $wgPasswordPolicy's MaximalPasswordLength.
Member MediaWiki\MainConfigNames::MinimalPasswordLength
since 1.26, use $wgPasswordPolicy's MinimalPasswordLength.
Member MediaWiki\MainConfigNames::OpenSearchTemplate
since 1.25 Use $wgOpenSearchTemplates['application/x-suggestions+json'] instead
Member MediaWiki\MainConfigNames::SquidPurgeUseHostHeader
since 1.33
Member MediaWiki\MainConfigNames::TrackingCategories
since 1.25 Extensions should now register tracking categories using the new extension registration system.
Member MediaWiki\MainConfigNames::UploadStashScalerBaseUrl
since 1.36 Use thumbProxyUrl in $wgLocalFileRepo
Member MediaWiki\MainConfigSchema::ContentHandlerTextFallback
since 1.37
Member MediaWiki\MainConfigSchema::GalleryOptions
since 1.28
  • showBytes: Show the filesize in bytes in categories
  • showDimensions: Show the dimensions (width x height) in categories
  • mode: Gallery mode
Member MediaWiki\MainConfigSchema::LogoHD
since 1.35. Developers should retrieve this logo (and other variants) using the static function MediaWiki\ResourceLoader\SkinModule::getAvailableLogos. $wgLogos should be used instead.
Member MediaWiki\MainConfigSchema::MangleFlashPolicy
since 1.39
Member MediaWiki\MainConfigSchema::MaximalPasswordLength
since 1.26, use $wgPasswordPolicy's MaximalPasswordLength.
Member MediaWiki\MainConfigSchema::MinimalPasswordLength
since 1.26, use $wgPasswordPolicy's MinimalPasswordLength.
Member MediaWiki\MainConfigSchema::SquidPurgeUseHostHeader
since 1.33, will always be true in a future release.
Member MediaWiki\MainConfigSchema::UploadStashScalerBaseUrl
since 1.36 Use thumbProxyUrl in $wgLocalFileRepo
Member MediaWiki\MediaWikiServices::getWatchlistNotificationManager ()
since 1.36 use getWatchlistManager() instead
Member MediaWiki\Navigation\PagerNavigationBuilder::setMakeLinkCallback (?callable $callback)
since 1.39
Class MediaWiki\Navigation\PrevNextNavigationRenderer
since 1.39 Use PagerNavigationBuilder instead
Class MediaWiki\Page\Hook\ArticleDeleteCompleteHook
since 1.37, use PageDeleteCompleteHook instead. The new hook uses more modern typehints and replaces the Content object with a RevisionRecord.
Class MediaWiki\Page\Hook\ArticleDeleteHook
since 1.37, use PageDeleteHook instead. The new hook uses more modern typehints and requires callers to add errors to $status, rather than the $error parameter.
Class MediaWiki\Page\Hook\RollbackCompleteHook

since 1.36, use PageSaveComplete

Class MediaWiki\Page\Hook\WikiPageDeletionUpdatesHook

since 1.32 Use PageDeletionDataUpdates or override ContentHandler::getDeletionDataUpdates instead

Class MediaWiki\Permissions\Hook\UserCanHook

since 1.37 use getUserPermissionsErrors or getUserPermissionsErrorsExpensive instead.

Member MediaWiki\Permissions\PermissionManager::getGroupPermissions ( $groups)
since 1.36, hard-deprecated since 1.40. Use GroupPermissionsLookup instead.
Member MediaWiki\Permissions\PermissionManager::getGroupsWithPermission ( $role)
since 1.36, hard-deprecated since 1.40. use GroupPermissionsLookup instead.
Member MediaWiki\Permissions\PermissionManager::groupHasPermission ( $group, $role)
since 1.36, hard-deprecated since 1.40. Use GroupPermissionsLookup instead.
Member MediaWiki\ResourceLoader\Context::getConfig ()
since 1.34 Use Module::getConfig instead inside module methods.
Member MediaWiki\ResourceLoader\Context::getLogger ()
since 1.34 Use Module::getLogger instead inside module methods.
Class MediaWiki\Rest\Hook\SearchResultProvideThumbnailHook
This interface will be removed as soon as all classes implementing it have been updated to implement MediaWiki\Search\Hook\SearchResultProvideThumbnailHook
Member MediaWiki\Revision\RevisionStore::getTitle ( $pageId, $revId, $queryFlags=self::READ_NORMAL)
since 1.36, Use RevisionRecord::getPage() instead.
Member MediaWiki\Revision\RevisionStore::userWasLastToEdit (IDatabase $db, $pageId, $userId, $since)
since 1.31; Can possibly be removed, since the self-conflict suppression logic in EditPage that uses this seems conceptually dubious. Revision::userWasLastToEdit had been deprecated since 1.24 (the Revision class was removed entirely in 1.37).
Class MediaWiki\Search\Hook\PrefixSearchBackendHook

since 1.27 Override SearchEngine::completionSearchBackend instead

Class MediaWiki\Search\SearchWidgets\SimpleSearchResultSetWidget
since 1.31. Use InterwikiSearchResultSetWidget
Class MediaWiki\Search\SearchWidgets\SimpleSearchResultWidget
since 1.31. Use other result widgets.
Member MediaWiki\Session\SessionProvider::setConfig (Config $config)
since 1.37. For extension-defined session providers that were using this method to trigger other work, please override SessionProvider::postInitSetup instead. If your extension was using this to explicitly change the Config of an existing SessionProvider object, please file a report on phabricator
  • there is no non-deprecated way to do this anymore.
Member MediaWiki\Session\SessionProvider::setHookContainer ( $hookContainer)
since 1.37. For extension-defined session providers that were using this method to trigger other work, please override SessionProvider::postInitSetup instead. If your extension was using this to explicitly change the HookContainer of an existing SessionProvider object, please file a report on phabricator
  • there is no non-deprecated way to do this anymore.
Member MediaWiki\Session\SessionProvider::setLogger (LoggerInterface $logger)
since 1.37. For extension-defined session providers that were using this method to trigger other work, please override SessionProvider::postInitSetup instead. If your extension was using this to explicitly change the logger of an existing SessionProvider object, please file a report on phabricator
  • there is no non-deprecated way to do this anymore.
Member MediaWiki\Session\SessionProvider::setManager (SessionManager $manager)
since 1.37. For extension-defined session providers that were using this method to trigger other work, please override SessionProvider::postInitSetup instead. If your extension was using this to explicitly change the SessionManager of an existing SessionProvider object, please file a report on phabricator
  • there is no non-deprecated way to do this anymore.
Member MediaWiki\Shell\Command::cgroup ( $cgroup)
since 1.36
Member MediaWiki\Shell\Command::restrict (int $restrictions)
since 1.36 Set the options using their separate accessors
Member MediaWiki\Shell\Command::whitelistPaths (array $paths)
since 1.36 Use allowPath/disallowPath. Hard deprecated in 1.40 and to be removed in 1.41
Member MediaWiki\Storage\DerivedPageDataUpdater::getPreparedEdit ()
This only exists for B/C, use the getters on DerivedPageDataUpdater directly!
Class MediaWiki\Storage\Hook\PageContentSaveHook

since 1.35 Use MultiContentSave instead

Member MediaWiki\Storage\PageUpdater::isUnchanged ()
since 1.38, use wasRevisionCreated() instead.
Member MediaWiki\Storage\SqlBlobStore::getTextIdFromAddress ( $address)
since 1.31, so don't assume that all blob addresses refer to a row in the text table. This method should become private once the relevant refactoring in WikiPage is complete.
Member MediaWiki\Title\TitleFactory::newFromIDs ( $ids)
since 1.38 use a PageStore QueryBuilder instead
Class MediaWiki\User\ActorMigration
since 1.39
Member MediaWiki\User\ActorMigration::getInsertValues (IDatabase $dbw, $key, UserIdentity $user)
since 1.39 Use ‘[ ’{table_prefix}_actor' => MediaWikiServices::getInstance() ->getActorNormalization()->acquireActorId( $user, $dbw ) ] E.g.
Member MediaWiki\User\ActorMigration::getInsertValuesWithTempTable (IDatabase $dbw, $key, UserIdentity $user)
since 1.39 Use same replacement as getInsertValues().
Member MediaWiki\User\ActorMigration::getJoin ( $key)
since 1.39 Use {table} JOIN actor ON {table_prefix}_actor = actor_id E.g.
Member MediaWiki\User\ActorMigration::getWhere (IDatabase $db, $key, $users, $useId=true)
since 1.39 Use {table_prefix}_actor IN ({list of actor IDs}).
Class MediaWiki\User\Hook\UserIsBlockedGloballyHook
since 1.40. Use GetUserBlockHook instead.
Member MediaWiki\User\UserIdentityValue::getActorId ( $wikiId=self::LOCAL)
since 1.36, use ActorNormalization::acquireActorId instead.
Member MediaWiki\User\UserSelectQueryBuilder::userIds ( $userIds)
since 1.37, use whereUserIds instead
Member MediaWiki\User\UserSelectQueryBuilder::userNamePrefix (string $prefix)
since 1.37 use whereUserNamePrefix instead
Member MediaWiki\User\UserSelectQueryBuilder::userNames ( $userNames)
since 1.37, use whereUserNames instead
Member Message::content ()
since 1.38, MessageContent class is hard-deprecated.
Member Message::title ( $title)
since 1.37. Use ::page instead
File MessageContent.php
since 1.38.
Member MessageContent::getNativeData ()
since 1.33 use getMessage() instead.
Member MimeAnalyzer::getExtensionsForType ( $mime)
since 1.35 Use getExtensionsFromMimeType() instead.
Member MimeAnalyzer::getTypesForExtension ( $ext)
since 1.35 Use getMimeTypesFromExtension() instead.
Member MimeAnalyzer::guessTypesForExtension ( $ext)
since 1.35 Use getMimeTypeFromExtensionOrNull() instead.
Member MovePage::checkPermissions (Authority $performer, $reason)
since 1.36, use ::authorizeMove or ::probablyCanMove instead.
Class MWException
since 1.40, use native exceptions instead (either directly, or defining subclasses when appropriate)
Member MWExceptionHandler::rollbackMasterChangesAndLog (Throwable $e, $catcher=self::CAUGHT_BY_OTHER)
since 1.37; please use rollbackPrimaryChangesAndLog() instead.
Member MWHttpRequest::factory ( $url, array $options=null, $caller=__METHOD__)
since 1.34, use HttpRequestFactory instead
Member MWTidy::tidy ( $text)
since 1.36; use MediaWikiServices::getTidy()->tidy() instead
Member NamespaceInfo::getRestrictionLevels ( $index, User $user=null)
since 1.34 User PermissionManager::getNamespaceRestrictionLevels instead.
Member OutputPage::$mCategories
since 1.38, will be made private (T301020)
Member OutputPage::$mCategoryLinks
since 1.38; will be made private (T301020)
Member OutputPage::$mEnableClientCache
since 1.38; will be made private (T301020)
Member OutputPage::$mHeadItems
since 1.38; will be made private (T301020)
Member OutputPage::$mHideNewSectionLink
since 1.38; will be made private (T301020)
Member OutputPage::$mIndicators
since 1.38; will be made private (T301020)
Member OutputPage::$mJsConfigVars
since 1.38; will be made private (T301020)
Member OutputPage::$mModules
since 1.38; will be made private (T301020)
Member OutputPage::$mModuleStyles
since 1.38; will be made private (T301020)
Member OutputPage::$mNewSectionLink
since 1.38; will be made private (T301020)
Member OutputPage::$mNoGallery
since 1.38; will be made private (T301020)
Member OutputPage::$mTemplateIds
since 1.38; will be made private (T301020)
Member OutputPage::allowClickjacking ()
since 1.38, use ::setPreventClickjacking( false )
Member OutputPage::formatPermissionsErrorMessage (array $errors, $action=null)
since 1.36. Use ::formatPermissionStatus instead
Member OutputPage::getCSPNonce ()
Since 1.35 use getCSP()->getNonce() instead
Member OutputPage::preventClickjacking ( $enable=true)
since 1.38, use ::setPreventClickjacking( true )
Class Page
since 1.35, Use WikiPage or Article instead @method array getActionOverrides() @method string getTimestamp() @method Title getTitle()
Member PageArchive::getArchivedRevisionRecord (int $revId)
since 1.38 Use ArchivedRevisionLookup::getArchivedRevisionRecord
Member PageArchive::getFileStatus ()
since 1.38 The entrypoints in UndeletePage return a StatusValue
Member PageArchive::getLastRevisionId ()
since 1.38 Use ArchivedRevisionLookup::getLastRevisionId
Member PageArchive::getPreviousRevisionRecord (string $timestamp)
since 1.38 Use ArchivedRevisionLookup::getPreviousRevisionRecord
Member PageArchive::getRevisionRecordByTimestamp ( $timestamp)
since 1.38 Use ArchivedRevisionLookup::getRevisionRecordByTimestamp
Member PageArchive::getRevisionStatus ()
since 1.38 The entrypoints in UndeletePage return a StatusValue
Member PageArchive::isDeleted ()
since 1.38 Use ArchivedRevisionLookup::hasArchivedRevisions
Member PageArchive::listRevisions ()
since 1.38 Use ArchivedRevisionLookup::listRevisions
Member PageArchive::undeleteAsUser ( $timestamps, UserIdentity $user, $comment='', $fileVersions=[], $unsuppress=false, $tags=null)
since 1.38, use UndeletePage instead
Member Parser::$mExpensiveFunctionCount
since 1.35
Member Parser::$mHighestExpansionDepth
since 1.35
Member Parser::$mMarkerIndex
since 1.35
Member Parser::$mOptions
since 1.35, use Parser::getOptions()
Member Parser::$mPPNodeCount
since 1.35
Member Parser::$mTitle
since 1.35, use Parser::getTitle()
Member Parser::$ot
since 1.35
Member Parser::attributeStripCallback (&$text, $frame=false)
since 1.35, internal callback should not have been public
Member Parser::doBlockLevels ( $text, $linestart)
since 1.35, will not be supported in future parsers
Member Parser::enableOOUI ()
since 1.35, use $parser->getOutput()->setEnableOOUI() instead.
Member Parser::firstCallInit ()
since 1.35, this initialization is done in the constructor and manual calls to ::firstCallInit() have no effect.
Member Parser::getCustomDefaultSort ()
since 1.38, use $parser->getOutput()->getPageProperty('defaultsort') ?? false
Member Parser::getDefaultSort ()
since 1.38, use $parser->getOutput()->getPageProperty('defaultsort') ?? ''
Member Parser::getFreshParser ()
since 1.39, use ParserFactory::getInstance()
Member Parser::getFunctionLang ()
since 1.40; use ::getTargetLanguage() instead.
Member Parser::getTitle ()
since 1.37, use getPage instead.
Member Parser::Options ( $x=null)
since 1.35, use getOptions() / setOptions()
Member Parser::OutputType ( $x=null)
since 1.35, use getOutputType()/setOutputType()
Member Parser::parseExtensionTagAsTopLevelDoc ( $text)
Member Parser::replaceLinkHolders (&$text, $options=0)
since 1.34; should not be used outside parser class.
Member Parser::setDefaultSort ( $sort)
since 1.38, use $parser->getOutput()->setPageProperty('defaultsort', $sort)
Member Parser::setTitle (Title $t=null)
since 1.37, use setPage() instead.
Member Parser\MagicWordArray::getVariableRegex ()
since 1.36 Appears to have no uses.
Class Parser\Parsoid\ParsoidServices
since 1.39. This is a marker class indicating that certain code has been moved from Parsoid to core; it will be removed once the transition is complete. Use MediaWikiServices instead.
Member ParserOptions::enableLimitReport ( $x=true)
since 1.38.
Member ParserOptions::getEnableLimitReport ()
since 1.38.
Member ParserOptions::newCanonical ( $context, $userLang=null)
since 1.38. Use ::newFromContext, ::newFromAnon or ::newFromUserAndLang instead. Canonical ParserOptions are now exactly the same as non-canonical.
Member ParserOptions::setAllowExternalImages ( $x)
since 1.35; per-parser configuration of image handling via parser options is deprecated. Use site configuration.
Member ParserOptions::setAllowExternalImagesFrom ( $x)
since 1.35; per-parser configuration of image handling via parser options is deprecated. Use site configuration.
Member ParserOptions::setEnableImageWhitelist ( $x)
since 1.35; per-parser configuration of image handling via parser options is deprecated. Use site configuration.
Member ParserOptions::setOptionLegacy ( $name, $value)
since 1.30
Member ParserOutput::addJsConfigVars ( $keys, $value=null)
since 1.38, use ::setJsConfigVar() or ::appendJsConfigVar() which ensures compatibility with asynchronous parsing.
Member ParserOutput::addOutputHook ( $hook, $data=false)
since 1.38; should be done in the OutputPageParserOutput hook (T292321).
Member ParserOutput::addTrackingCategory ( $msg, PageReference $page)
since 1.38, use Parser::addTrackingCategory or TrackingCategories::addTrackingCategory() instead
Member ParserOutput::addWarning ( $s)
since 1.38; use ::addWarningMsg() instead
Member ParserOutput::getCategoryLinks ()
since 1.38, use ::getCategoryNames() instead.
Member ParserOutput::getFlag ( $flag)
since 1.38; use ::getOutputFlag()
Member ParserOutput::getOutputHooks ()
since 1.38; should be done in the OutputPageParserOutput hook (T292321).
Member ParserOutput::getProperties ()
since 1.38, renamed to ::getPageProperties()
Member ParserOutput::getProperty ( $name)
since 1.38, renamed to ::getPageProperty() and returns null if no value was set.
Member ParserOutput::hasDynamicContent ()
since 1.38: use ::hasReducedExpiry()
Member ParserOutput::hideNewSection ( $value)
since 1.38 use ::setHideNewSection()
Member ParserOutput::preventClickjacking ( $flag)
since 1.38: use ::setPreventClickjacking() or ::getPreventClickjacking()
Member ParserOutput::setCategoryLinks ( $cl)
since 1.38, use ::setCategories() instead.
Member ParserOutput::setFlag ( $flag)
since 1.38; use ::setOutputFlag()
Member ParserOutput::setProperty ( $name, $value)
since 1.38, renamed to ::setPageProperty()
Member ParserOutput::setTOCHTML ( $tochtml)
since 1.40 T293513: We can remove this once we get rid of MW 1.38 and older parsercache serialization tests since those serialized files have artificial TOC data (which we cannot replicate via on-demand TOC generation).
Member ParserOutput::unsetProperty ( $name)
since 1.38, renamed to ::unsetPageProperty()
Member PasswordFactory::init (Config $config)
since 1.32 Initialize settings using the constructor
Class PrefixSearch
Since 1.27, Use SearchEngine::defaultPrefixSearch or SearchEngine::completionSearch
Member Processor::getExtraAutoloaderPaths ( $dir, array $info)
since 1.39, use getExtractedAutoloadInfo instead
Member QueryPage::getSQL ()
since 1.39; getQueryInfo() should be overridden instead.
Member RangeChronologicalPager::$rangeConds
since 1.40, use $startOffset and $endOffset instead.
Member RecentChange::getEngine ( $uri, $params=[])
since 1.29 Use RCFeed::factory() instead. Hard deprecated since 1.38.
Member RecentChange::getPerformer ()
since 1.36, hard deprecated since 1.37, use getPerformerIdentity() instead.
Member RecentChange::getTitle ()
since 1.37, use getPage() instead.
Member Sanitizer::escapeIdReferenceList ( $referenceString)
since 1.36. Unused outside this class, will be made private.
Member Sanitizer::hackDocType ()
since 1.36; will be made private or removed in a future release.
Member Sanitizer::removeHTMLtags ( $text, $processCallback=null, $args=[], $extratags=[], $removetags=[])
since 1.38. Use ::removeSomeTags(), which always gives balanced/tidy HTML.
Member SearchEngine::$searchTerms
since 1.34
Member SearchEngine::defaultNearMatcher ()
since 1.40, MediaWikiServices::getInstance()->getTitleMatcher()
Member SearchEngine::getNearMatcher (Config $config)
since 1.40, use MediaWikiServices::getInstance()->getTitleMatcher()
Member SearchEngine::getTextFromContent (Title $t, Content $c=null)
since 1.34 use Content::getTextForSearchIndex directly
Member SearchEngine::replacePrefixes ( $query)
since 1.32; should be handled internally by the search engine
Member SearchEngine::textAlreadyUpdatedForIndex ()
since 1.34 no longer needed since getTextFromContent is being deprecated
Member SearchEngine::userHighlightPrefs ()
in 1.34 use the SearchHighlighter constants directly
Member SiteStatsUpdate::__construct ( $views, $edits, $good, $pages=0, $users=0)
since 1.39 Use SiteStatsUpdate::factory() instead.
Member Skin::bottomScripts ( $triggerWarnings=true)
since 1.37
Member Skin::footerLink ( $desc, $page)
since 1.40
Member Skin::getAction ()
since 1.39
Member Skin::lastModified ()
since 1.40
Member Skin::makeSearchButton ( $mode, $attrs=[])
1.39 use $this->getTemplateData()['data-search-box'] instead. Note: When removing this function please merge SkinTemplate::makeSearchButtonInternal with SkinTemplate::makeSearchButton.
Member Skin::makeSearchInput ( $attrs=[])
1.39 use $this->getTemplateData()['data-search-box'] instead.
Member SkinFactory::getSkinNames ()
since 1.37 Use getInstalledSkins instead
Member SkinTemplate::buildContentNavigationUrls ()
since 1.38 skins can use runOnSkinTemplateNavigationHooks instead.
Member SkinTemplate::getNameSpaceKey ()
since 1.35, use Title::getNamespaceKey() instead.
Member SkinTemplate::makeSearchButtonInternal ( $mode, $searchData, $attrs=[])
1.38 see
Member SpecialBlock::canBlockEmail (UserIdentity $user)
since 1.36, use BlockPermissionChecker service instead
Member SpecialBlock::checkUnblockSelf ( $target, Authority $performer)
since 1.36, hard deprecated since 1.37, use BlockPermissionChecker instead
Member SpecialBlock::getTargetAndType (?string $par, WebRequest $request=null)
since 1.36. Use BlockUtils::parseBlockTarget directly instead.
Member SpecialBlock::parseExpiryInput ( $expiry)
since 1.36, use BlockUser::parseExpiryInput instead
Member SpecialBlock::processForm (array $data, IContextSource $context)
since 1.36, use BlockUserFactory service instead
Member SpecialPage::getLanguageConverter ()
since 1.36 Inject LanguageConverterFactory and store a ILanguageConverter instance
Member SpecialPage::listed ( $x=null)
since 1.35 Set via subclassing UnlistedSpecialPage, get via isListed()
Member SpecialPage::setListed ( $listed)
since 1.35
Class SpecialResetTokens
since 1.26
Member SqlSearchResultSet::termMatches ()
since 1.34
Member Status::getErrorsArray ()
since 1.25
Member Status::getWarningsArray ()
since 1.25
Member StreamFile::STREAM_ALLOW_OB
since 1.34
Member StreamFile::STREAM_HEADLESS
since 1.34
Class StringPrefixSearch

Since 1.27, Use SearchEngine::prefixSearchSubpages or SearchEngine::completionSearch

Member TablePager::getBody ()
since 1.24, use getBodyOutput() or getFullOutput() instead
Member TempFSFile::factory ( $prefix, $extension='', $tmpDirectory=null)
since 1.34, use TempFSFileFactory directly
Member TextContent::getNativeData ()
since 1.33 use getText() instead.
Member Title::areCascadeProtectionSourcesLoaded ()
since 1.37, hard deprecated 1.40, use RestrictionStore::areCascadeProtectionSourcesLoaded instead
Member Title::areRestrictionsCascading ()
since 1.37, hard deprecated 1.40, use RestrictionStore::areRestrictionsCascading instead
Member Title::areRestrictionsLoaded ()
since 1.37, hard deprecated 1.40, use RestrictionStore::areRestrictionsLoaded instead
Member Title::deleteTitleProtection ()
since 1.37, do not use (this is only for WikiPage::onArticleCreate)
Member Title::flushRestrictions ()
since 1.37, now internal
Member Title::GAID_FOR_UPDATE
since 1.34, use Title::READ_LATEST instead.
Member Title::getAllRestrictions ()
since 1.37, hard deprecated 1.40, use RestrictionStore::getAllRestrictions instead
Member Title::getBacklinkCache ()
since 1.37, use BacklinkCacheFactory::getBacklinkCache()
Member Title::getCascadeProtectionSources ( $getPages=true)
since 1.37, hard deprecated 1.40, use RestrictionStore::getCascadeProtectionSources instead
Member Title::getCdnUrls ()
since 1.35 Use HtmlCacheUpdater
Member Title::getFilteredRestrictionTypes ( $exists=true)
since 1.37, hard deprecated 1.40, use RestrictionStore::listAllRestrictionTypes instead
Member Title::getOtherPage ()
since 1.34, use NamespaceInfo::getAssociatedPage
Member Title::getRestrictionExpiry ( $action)
since 1.37, hard deprecated 1.40, use RestrictionStore::getRestrictionExpiry instead
Member Title::getRestrictions ( $action)
since 1.37, hard deprecated 1.40, use RestrictionStore::getRestrictions instead
Member Title::getRestrictionTypes ()
since 1.37, hard deprecated 1.40, use RestrictionStore::listApplicableRestrictionTypes instead
Member Title::getSelectFields ()
since 1.36, use PageStore::newSelectQueryBuilder() instead. Hard deprecated in 1.39, remove in 1.40
Member Title::getSubjectPage ()
since 1.34, use NamespaceInfo::getSubjectPage
Member Title::getTalkPage ()
since 1.34, use getTalkPageIfDefined() or NamespaceInfo::getTalkPage() with NamespaceInfo::canHaveTalkPage(). Note that the new method will throw if asked for the talk page of a section-only link, or of an interwiki link.
Member Title::getTitleProtection ()
since 1.37, use RestrictionStore::getRestrictions() instead
Member Title::isBigDeletion ()
since 1.37 External callers shouldn't need to know about this.
Member Title::isCascadeProtected ()
since 1.37, hard deprecated 1.40, use RestrictionStore::isCascadeProtected instead
Member Title::isDeleted ()
since 1.36. Use self::getDeletedEditsCount()
Member Title::isDeletedQuick ()
since 1.36, Use self::hasDeletedEdits()
Member Title::isProtected ( $action='')
since 1.37, hard deprecated 1.40, use RestrictionStore::isProtected instead
Member Title::isSemiProtected ( $action='edit')
since 1.37, hard deprecated 1.40, use RestrictionStore::isSemiProtected instead
Member Title::loadRestrictions ( $flags=0)
since 1.37, no public replacement
Member Title::loadRestrictionsFromRows ( $rows)
since 1.37, hard deprecated 1.40, use RestrictionStore::loadRestrictionsFromRows instead
Member Title::newFromIDs ( $ids)
since 1.38 use a PageStore QueryBuilder instead
Member Title::newFromTitleValue (TitleValue $titleValue, $forceClone='')
since 1.34, use newFromLinkTarget or castFromLinkTarget. Hard deprecated in 1.39.
Member Title::purgeSquid ()
since 1.35 Use HtmlCacheUpdater
Class TitlePrefixSearch

Since 1.27, Use SearchEngine::defaultPrefixSearch or SearchEngine::completionSearch

Class UIDGenerator
Since 1.35; use GlobalIdGenerator instead
Member User::addGroup ( $group, $expiry=null)
since 1.35 Use UserGroupManager::addUserToGroup instead
Member User::blockedFor ()
since 1.35 Use AbstractBlock::getReasonComment instead Hard deprecated since 1.39.
Member User::getAllGroups ()
since 1.35, use UserGroupManager::listAllGroups instead
Member User::getEditToken ( $salt='', $request=null)
since 1.37. Use CsrfTokenSet::getToken instead
Member User::getEditTokenObject ( $salt='', $request=null)
since 1.37. Use CsrfTokenSet::getToken instead
Member User::getGlobalBlock ( $ip='')
since 1.40. Use getBlock instead
Member User::getGroupMemberships ()
since 1.35 Use UserGroupManager::getUserGroupMemberships instead
Member User::getGroupPermissions ( $groups)
since 1.34, hard-deprecated since 1.40, use GroupPermissionsLookup::getGroupPermissions() instead in 1.36+, or PermissionManager::getGroupPermissions() in 1.34 and 1.35
Member User::getGroups ()
since 1.35 Use UserGroupManager::getUserGroups instead.
Member User::getGroupsWithPermission ( $role)
since 1.34, hard-deprecated since 1.40, use GroupPermissionsLookup::getGroupsWithPermission() instead in 1.36+, or PermissionManager::getGroupsWithPermission() in 1.34 and 1.35
Member User::getImplicitGroups ()
since 1.35, use UserGroupManager::listAllImplicitGroups() instead
Member User::getOption ( $oname, $defaultOverride=null, $ignoreHidden=false)
since 1.35 Hard-deprecated since 1.39. Use UserOptionsLookup::getOption instead.
Member User::getTokenFromOption ( $oname)
since 1.26 Applications should use the OAuth extension
Member User::groupHasPermission ( $group, $role)
since 1.34, hard-deprecated since 1.40, use GroupPermissionsLookup::groupHasPermission() instead in 1.36+, or PermissionManager::groupHasPermission() in 1.34 and 1.35
Member User::idFromName ( $name, $flags=self::READ_NORMAL)
since 1.37.
Member User::incEditCount ()
since 1.37, hard deprecated 1.40.
Member User::isBlocked ( $fromReplica=true)
since 1.34, use User::getBlock() or Authority:getBlock() or Authority:definitelyCan() or Authority:authorizeRead() or Authority:authorizeWrite() or PermissionManager::isBlockedFrom(), as appropriate.
Member User::isBlockedFrom ( $title, $fromReplica=false)
since 1.33, use MediaWikiServices::getInstance()->getPermissionManager()->isBlockedFrom(..)
Member User::isBlockedFromCreateAccount ()
since 1.37. Instead use Authority::authorize* for createaccount permission.
Member User::isBlockedGlobally ( $ip='')
since 1.40. Use getBlock instead.
Member User::matchEditToken ( $val, $salt='', $request=null, $maxage=null)
since 1.37. Use CsrfTokenSet::matchToken instead
Member User::newFromActorId ( $id)
since 1.36, use a UserFactory instead
Member User::newFromAnyId ( $userId, $userName, $actorId, $dbDomain=false)
since 1.36, use a UserFactory instead
Member User::newFromConfirmationCode ( $code, $flags=self::READ_NORMAL)
since 1.36, use a UserFactory instead
Member User::newFromId ( $id)
since 1.36, use a UserFactory instead
Member User::newFromIdentity (UserIdentity $identity)
since 1.36, use a UserFactory instead
Member User::newFromName ( $name, $validate='valid')
since 1.36, use a UserFactory instead
Member User::removeGroup ( $group)
since 1.35 Use UserGroupManager::removeUserFromGroup instead.
Member User::setActorId (int $actorId)
since 1.36
Member UserGroupMembership::getGroupMemberName ( $group, $member)
since 1.40, use Language::getGroupMemberName or Message::objectParm with instance of UserGroupMembershipParam
Member UserGroupMembership::getGroupName ( $group)
since 1.38, use Language::getGroupName or Message::userGroupParams
Class UserNamePrefixSearch
since 1.36, use the MediaWiki\User\UserNamePrefixSearch service
Member UserNamePrefixSearch::search ( $audience, $search, $limit, $offset=0)
since 1.36, use the MediaWiki\User\UserNamePrefixSearch service instead
Class UserRightsProxy
since 1.38, pass the correct domain to UserGroupManagerFactory instead.
Member WANObjectCache::clearLastError ()
Since 1.38
Member WatchedItem::getLinkTarget ()
since 1.36, use getTarget() instead
Member wfAssembleUrl ( $urlParts)
since 1.39, use UrlUtils::assemble()
Member wfClearOutputBuffers ()
since 1.36
Member wfEscapeShellArg (... $args)
since 1.30 use MediaWiki\Shell\Shell::escape()
Member wfExpandIRI ( $url)
since 1.39, use UrlUtils::expandIRI()
Member wfExpandUrl ( $url, $defaultProto=PROTO_CURRENT)
since 1.39, use UrlUtils::expand()
Member wfGetDB ( $db, $groups=[], $wiki=false)
since 1.39, use LoadBalancer::getConnection() on an injected instance of LoadBalancer instead.
Member wfGetServerUrl ( $proto)
since 1.39, use UrlUtils::getServer()
Member wfGetUrlUtils ()
Get a UrlUtils from services, or construct your own
Member wfMatchesDomainList ( $url, $domains)
since 1.39, use UrlUtils::expandIRI()
Member wfParseUrl ( $url)
since 1.39, use UrlUtils::parse()
Member wfRemoveDotSegments ( $urlPath)
since 1.39, use UrlUtils::removeDotSegments()
Member wfShellExec ( $cmd, &$retval=null, $environ=[], $limits=[], $options=[])
since 1.30 use class MediaWiki\Shell\Shell
Member wfShellExecWithStderr ( $cmd, &$retval=null, $environ=[], $limits=[])
since 1.30 use class MediaWiki\Shell\Shell
Member wfShellWikiCmd ( $script, array $parameters=[], array $options=[])
since 1.31, use Shell::makeScriptCommand()
Member wfShowingResults ( $offset, $limit)
with warnings since 1.40
Member wfUrlProtocols ( $includeProtocolRelative=true)
since 1.39, use UrlUtils::validProtocols()
Member wfUrlProtocolsWithoutProtRel ()
since 1.39, use UrlUtils::validAbsoluteProtocols()
Member Wikimedia\Rdbms\ConnectionManager::getLazyReadConnectionRef (array $groups=null)
since 1.39; Use getReadConnection()
Member Wikimedia\Rdbms\ConnectionManager::getLazyWriteConnectionRef ()
since 1.39; Use getWriteConnection()
Member Wikimedia\Rdbms\ConnectionManager::getReadConnectionRef (array $groups=null)
since 1.38; Use getReadConnection()
Member Wikimedia\Rdbms\ConnectionManager::getWriteConnectionRef ()
since 1.39; Use getWriteConnection()
Member Wikimedia\Rdbms\ConnectionManager::releaseConnection (IDatabase $db)
since 1.38
Member Wikimedia\Rdbms\Database::attributesFromType ( $dbType, $driver=null)
since 1.39, use DatabaseFactory::attributesFromType instead
Member Wikimedia\Rdbms\Database::factory ( $type, $params=[], $connect=self::NEW_CONNECTED)
since 1.39, use DatabaseFactory::create instead
Member Wikimedia\Rdbms\IDatabase::nextSequenceValue ( $seqName)
since 1.30, no longer needed
Member Wikimedia\Rdbms\IDatabase::wasErrorReissuable ()
Since 1.40
Member Wikimedia\Rdbms\ILoadBalancer::DB_MASTER
since 1.36, Use DB_PRIMARY instead
Member Wikimedia\Rdbms\ILoadBalancer::getConnectionRef ( $i, $groups=[], $domain=false, $flags=0)
since 1.39, use ILoadBalancer::getConnection() instead.
Member Wikimedia\Rdbms\ILoadBalancer::reuseConnection (IDatabase $conn)
since 1.39 noop
Class Wikimedia\Rdbms\MaintainableDBConnRef
since 1.39 use DBConnRef
Class Wikimedia\Rdbms\NextSequenceValue
since 1.30, only exists for backwards compatibility
Member Wikimedia\Rdbms\Platform\ISQLPlatform::tableNames (... $tables)
since 1.39; if you must format table names, write several calls to tableName or use tableNamesN instead of calling this function.
Member Wikimedia\Rdbms\SessionConsistentConnectionManager::getReadConnectionRef (array $groups=null)
since 1.40; Use getReadConnection()
Member Wikimedia\Rdbms\SessionConsistentConnectionManager::getWriteConnectionRef ()
since 1.40; Use getWriteConnection()
Member Wikimedia\Rdbms\TransactionProfiler::setSilenced (bool $value)
Since 1.40
Member WikiPage::checkFlags ( $flags)
since 1.32, use exists() instead, or simply omit the EDIT_UPDATE and EDIT_NEW flags. To protect against race conditions, use PageUpdater::grabParentRevision.
Member WikiPage::doDeleteArticleBatched ( $reason, $suppress, UserIdentity $deleter, $tags, $logsubtype, $immediate=false, $webRequestId=null)
since 1.37 No external caller besides DeletePageJob should use this.
Member WikiPage::doDeleteArticleReal ( $reason, UserIdentity $deleter, $suppress=false, $u1=null, &$error='', $u2=null, $tags=[], $logsubtype='delete', $immediate=false)
since 1.37 Use DeletePage instead. Calling ::deleteIfAllowed and letting DeletePage handle permission checks is preferred over doing permission checks yourself and then calling ::deleteUnsafe. Note that DeletePage returns a good status with false value in case of scheduled deletion, instead of a status with a warning. Also, the new method doesn't have an $error parameter, since any error is added to the returned Status.
Member WikiPage::doDeleteUpdates ( $id, Content $content=null, RevisionRecord $revRecord=null, UserIdentity $user=null)
since 1.37 With no replacement.
Member WikiPage::doEditUpdates (RevisionRecord $revisionRecord, UserIdentity $user, array $options=[])
since 1.32 (soft), use DerivedPageDataUpdater::doUpdates instead.
Member WikiPage::doUserEditContent (Content $content, Authority $performer, $summary, $flags=0, $originalRevId=false, $tags=[], $undidRevId=0)
since 1.36, use PageUpdater::saveRevision instead. Note that the new method expects callers to take care of checking EDIT_MINOR against the minoredit right, and to apply the autopatrol right as appropriate.
Member WikiPage::factory (PageIdentity $pageIdentity)
since 1.36, hard deprecated 1.40, use WikiPageFactory::newFromTitle instead
Member WikiPage::getDeletionUpdates ( $rev=null)
since 1.37 With no replacement.
Member WikiPage::getRedirectTarget ()
since 1.38 Use RedirectLookup::getRedirectTarget() instead.
Member WikiPage::hasDifferencesOutsideMainSlot (RevisionRecord $a, RevisionRecord $b)
Use only as a stop-gap before refactoring to support MCR.
Member WikiPage::isBatchedDelete ( $safetyMargin=0)
since 1.37 Use DeletePage::isBatchedDelete instead.
Member WikiPage::newFromID ( $id, $from='fromdb')
since 1.36, hard deprecated 1.40, use WikiPageFactory::newFromID instead
Member WikiPage::newFromRow ( $row, $from='fromdb')
since 1.36, hard deprecated 1.40, use WikiPageFactory::newFromRow instead
Member WikiPage::prepareContentForEdit (Content $content, ?RevisionRecord $revision, UserIdentity $user, $serialFormat=null, $useStash=true)
since 1.32, use newPageUpdater() or getCurrentUpdate() instead.
Member WikiPage::replaceSectionContent ( $sectionId, Content $sectionContent, $sectionTitle='', $edittime=null)
since 1.24, use replaceSectionAtRev instead
Member WikiRevision::$content
since 1.35, use getContent
Member WikiRevision::$format
since 1.35, use getContent
Member WikiRevision::$model
since 1.35, use getContent
Member WikiRevision::$text
since 1.35, use getContent
Member WikiRevision::$userObj
since 1.39, use {
Member WikiRevision::getContentHandler ()
since 1.35, use getContent
Member WikiRevision::getFormat ()
since 1.35, use getContent
Member WikiRevision::getModel ()
since 1.35, use getContent
Member WikiRevision::getUserObj ()
since 1.39, use {
Member WikiRevision::importOldRevision ()
in 1.31. Use OldRevisionImporter::import
Member WikiRevision::setFormat ( $format)
since 1.35, use setContent instead.
Member WikiRevision::setModel ( $model)
since 1.35, use setContent instead.
Member WikiRevision::setText ( $text)
since 1.35, use setContent instead.
Member WikiRevision::setUserIP ( $ip)
since 1.39, use {
Member WikiRevision::setUserObj ( $user)
since 1.39, use {