-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathWikiDbVersionHelper.php
More file actions
61 lines (50 loc) · 1.81 KB
/
WikiDbVersionHelper.php
File metadata and controls
61 lines (50 loc) · 1.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
/* The purpose of this class to have one only place where
* this map of mediawikiVersion -> dbVersion lives.
*/
namespace App\Helper;
/**
* Exception thrown when a database version is not mapped in WikiDbVersionHelper.
*/
class UnknownDbVersionException extends \Exception {}
/**
* Exception thrown when a mediawiki version is not mapped in WikiDbVersionHelper.
*/
class UnknownMwVersionException extends \Exception {}
class WikiDbVersionHelper {
/** @var array<string, string> Map of DB version strings to MediaWiki version strings */
private const DB_VERSION_TO_MW_VERSION = [
'mw1.39-wbs1' => '139',
'mw1.43-wbs1' => '143',
];
public static function isValidDbVersion(string $dbVersionString): bool {
return array_key_exists(
$dbVersionString,
self::DB_VERSION_TO_MW_VERSION
);
}
public static function isValidMwVersion(string $mwVersionString): bool {
return array_key_exists(
$mwVersionString,
array_flip(self::DB_VERSION_TO_MW_VERSION)
);
}
/**
* @throws UnknownMwVersionException
*/
public static function getDbVersion(string $mwVersionString): string {
if (self::isValidMwVersion($mwVersionString)) {
return array_flip(self::DB_VERSION_TO_MW_VERSION)[$mwVersionString];
}
throw new UnknownMwVersionException("Unknown MediaWiki version string: '{$mwVersionString}'");
}
/**
* @throws UnknownDbVersionException
*/
public static function getMwVersion(string $dbVersionString): string {
if (self::isValidDbVersion($dbVersionString)) {
return self::DB_VERSION_TO_MW_VERSION[$dbVersionString];
}
throw new UnknownDbVersionException("Unknown database version string: '{$dbVersionString}'");
}
}