Provide MW_VERSION and deprecate fake global $wgVersion
$wgVersion is not a configuration variable, it should never be changed at run-time. While we've gone in the route of class constants for most constants, this one will not benefit from class-autoloading since it needs to be present from the very beginning. MW_VERSION is named similarly as PHP_VERSION, and $wgVersion is now soft-deprecated. Bug: T212738 Change-Id: I04628de4152dd5c72646813e08ff35e422e265a4
This commit is contained in:
parent
7f637d3b4a
commit
a5d5ea82ca
5 changed files with 17 additions and 7 deletions
|
|
@ -451,6 +451,7 @@ because of Phabricator reports.
|
|||
- getAllContentFormats
|
||||
- protected $handler (not need anymore)
|
||||
- cleanupHandlersCache (not need anymore)
|
||||
* (T212738) The $wgVersion global is deprecated; instead, use MW_VERSION.
|
||||
* $wgMemc is deprecated, use
|
||||
MediaWikiServices::getInstance()->getLocalServerObjectCache() instead.
|
||||
* ImagePage::getImageLimitsFromOptions() is deprecated. Use static function
|
||||
|
|
|
|||
|
|
@ -71,8 +71,9 @@ $wgConfigRegistry = [
|
|||
/**
|
||||
* MediaWiki version number
|
||||
* @since 1.2
|
||||
* @deprecated since 1.35; use the MW_VERSION constant instead
|
||||
*/
|
||||
$wgVersion = '1.35.0-alpha';
|
||||
$wgVersion = MW_VERSION;
|
||||
|
||||
/**
|
||||
* Name of the site. It must be changed in LocalSettings.php
|
||||
|
|
|
|||
|
|
@ -29,6 +29,15 @@ use Wikimedia\Rdbms\IDatabase;
|
|||
* @defgroup Constants MediaWiki constants
|
||||
*/
|
||||
|
||||
/**
|
||||
* The running version of MediaWiki.
|
||||
*
|
||||
* This replaces the the $wgVersion global found in earlier versions.
|
||||
*
|
||||
* @since 1.35
|
||||
*/
|
||||
define( 'MW_VERSION', '1.35.0-alpha' );
|
||||
|
||||
# Obsolete aliases
|
||||
|
||||
/** @{
|
||||
|
|
|
|||
|
|
@ -9,19 +9,19 @@
|
|||
class MediaWikiVersionFetcher {
|
||||
|
||||
/**
|
||||
* Returns the MediaWiki version, in the format used by MediaWiki's wgVersion global.
|
||||
* Get the MediaWiki version, extracted from the PHP source file where it is defined.
|
||||
*
|
||||
* @return string
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function fetchVersion() {
|
||||
$defaultSettings = file_get_contents( __DIR__ . '/DefaultSettings.php' );
|
||||
$code = file_get_contents( __DIR__ . '/Defines.php' );
|
||||
|
||||
$matches = [];
|
||||
preg_match( "/wgVersion = '([0-9a-zA-Z\.\-]+)';/", $defaultSettings, $matches );
|
||||
preg_match( "/define\( 'MW_VERSION', '([0-9a-zA-Z\.\-]+)'/", $code, $matches );
|
||||
|
||||
if ( count( $matches ) !== 2 ) {
|
||||
throw new RuntimeException( 'Could not extract the MediaWiki version from DefaultSettings.php' );
|
||||
throw new RuntimeException( 'Could not extract the MediaWiki version from Defines.php' );
|
||||
}
|
||||
|
||||
return $matches[1];
|
||||
|
|
|
|||
|
|
@ -13,9 +13,8 @@
|
|||
class MediaWikiVersionFetcherTest extends \MediaWikiIntegrationTestCase {
|
||||
|
||||
public function testReturnsResult() {
|
||||
global $wgVersion;
|
||||
$versionFetcher = new MediaWikiVersionFetcher();
|
||||
$this->assertSame( $wgVersion, $versionFetcher->fetchVersion() );
|
||||
$this->assertSame( MW_VERSION, $versionFetcher->fetchVersion() );
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue