From 5d54ddbd36eacfbd27a5bfb46bece8d7158cf6d8 Mon Sep 17 00:00:00 2001 From: David Barratt Date: Mon, 29 Jul 2019 22:26:17 -0400 Subject: [PATCH] Move list of core namespaces to NamespaceInfo It is sometimes necessary to get an unmodified list of namespaces that are in core. Bug: T226657 Change-Id: I8e4ed19db915a1673c27ca5b212d712d079b4bba --- includes/Setup.php | 20 +--------------- includes/title/NamespaceInfo.php | 39 ++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 19 deletions(-) diff --git a/includes/Setup.php b/includes/Setup.php index 420298504f..201e1a9d42 100644 --- a/includes/Setup.php +++ b/includes/Setup.php @@ -483,25 +483,7 @@ $wgMinUploadChunkSize = min( * Definitions of the NS_ constants are in Defines.php * @private */ -$wgCanonicalNamespaceNames = [ - NS_MEDIA => 'Media', - NS_SPECIAL => 'Special', - NS_TALK => 'Talk', - NS_USER => 'User', - NS_USER_TALK => 'User_talk', - NS_PROJECT => 'Project', - NS_PROJECT_TALK => 'Project_talk', - NS_FILE => 'File', - NS_FILE_TALK => 'File_talk', - NS_MEDIAWIKI => 'MediaWiki', - NS_MEDIAWIKI_TALK => 'MediaWiki_talk', - NS_TEMPLATE => 'Template', - NS_TEMPLATE_TALK => 'Template_talk', - NS_HELP => 'Help', - NS_HELP_TALK => 'Help_talk', - NS_CATEGORY => 'Category', - NS_CATEGORY_TALK => 'Category_talk', -]; +$wgCanonicalNamespaceNames = NamespaceInfo::$canonicalNames; /// @todo UGLY UGLY if ( is_array( $wgExtraNamespaces ) ) { diff --git a/includes/title/NamespaceInfo.php b/includes/title/NamespaceInfo.php index 2ed8729ac6..7307cc100b 100644 --- a/includes/title/NamespaceInfo.php +++ b/includes/title/NamespaceInfo.php @@ -50,6 +50,34 @@ class NamespaceInfo { /** @var ServiceOptions */ private $options; + /** + * Definitions of the NS_ constants are in Defines.php + * + * @todo Make this const when HHVM support is dropped (T192166) + * + * @var array + * @internal + */ + public static $canonicalNames = [ + NS_MEDIA => 'Media', + NS_SPECIAL => 'Special', + NS_TALK => 'Talk', + NS_USER => 'User', + NS_USER_TALK => 'User_talk', + NS_PROJECT => 'Project', + NS_PROJECT_TALK => 'Project_talk', + NS_FILE => 'File', + NS_FILE_TALK => 'File_talk', + NS_MEDIAWIKI => 'MediaWiki', + NS_MEDIAWIKI_TALK => 'MediaWiki_talk', + NS_TEMPLATE => 'Template', + NS_TEMPLATE_TALK => 'Template_talk', + NS_HELP => 'Help', + NS_HELP_TALK => 'Help_talk', + NS_CATEGORY => 'Category', + NS_CATEGORY_TALK => 'Category_talk', + ]; + /** * TODO Make this const when HHVM support is dropped (T192166) * @@ -642,4 +670,15 @@ class NamespaceInfo { return 'page'; } } + + /** + * Retrieve the indexes for the namespaces defined by core. + * + * @since 1.34 + * + * @return int[] + */ + public static function getCommonNamespaces() { + return array_keys( self::$canonicalNames ); + } } -- 2.20.1