Skip to content

Commit 59efebd

Browse files
authored
Version 1.6.0
Add Backward Compatibility with ´class_exists()´ statements in ´Compat.php´
1 parent 743c19c commit 59efebd

File tree

4 files changed

+39
-24
lines changed

4 files changed

+39
-24
lines changed

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ intensive.
5151

5252
* Add custom header and text settings for access-denial display
5353

54-
1.6.0 (Mar 20, 2026)
54+
1.6.0
5555

56-
* Add translations and link to MediaWiki
56+
* Add translations and link to MediaWiki (Mar 20, 2026)
57+
* Add Backward Compatibility with ´class_exists()´ statements ´Compat.php´ (Mar 29, 2026)

extension.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"requires": {
99
"MediaWiki": ">= 1.35"
1010
},
11+
"callback": "MediaWiki\\Extension\\CrawlerProtection\\Hooks::onRegistration",
1112
"AutoloadNamespaces": {
1213
"MediaWiki\\Extension\\CrawlerProtection\\": "includes/"
1314
},

includes/Compat.php

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?php
2+
3+
namespace MediaWiki\Extension\CrawlerProtection;
4+
5+
class Compat {
6+
7+
public static function init(): void {
8+
self::aliasCoreClasses();
9+
}
10+
11+
private static function aliasCoreClasses(): void {
12+
13+
if ( class_exists( \Title::class ) && !class_exists( \MediaWiki\Title\Title::class ) ) {
14+
class_alias( \Title::class, \MediaWiki\Title\Title::class ); /* < 1.40 */
15+
}
16+
if ( class_exists( \OutputPage::class ) && !class_exists( \MediaWiki\Output\OutputPage::class ) ) {
17+
class_alias( \OutputPage::class, \MediaWiki\Output\OutputPage::class ); /* < 1.41 */
18+
}
19+
if ( class_exists( \WebRequest::class ) && !class_exists( \MediaWiki\Request\WebRequest::class ) ) {
20+
class_alias( \WebRequest::class, \MediaWiki\Request\WebRequest::class ); /* < 1.41 */
21+
}
22+
if ( class_exists( \SpecialPage::class ) && !class_exists( \MediaWiki\SpecialPage\SpecialPage::class ) ) {
23+
class_alias( \SpecialPage::class, \MediaWiki\SpecialPage\SpecialPage::class ); /* < 1.41 */
24+
}
25+
if ( class_exists( \User::class ) && !class_exists( \MediaWiki\User\User::class ) ) {
26+
class_alias( \User::class, \MediaWiki\User\User::class ); /* < 1.41 */
27+
}
28+
if ( class_exists( \ActionEntryPoint::class ) && !class_exists( \MediaWiki\Actions\ActionEntryPoint::class ) ) {
29+
class_alias( \ActionEntryPoint::class, \MediaWiki\Actions\ActionEntryPoint::class ); /* < 1.42 */
30+
}
31+
if ( class_exists( \Article::class ) && !class_exists( \MediaWiki\Page\Article::class ) ) {
32+
class_alias( \Article::class, \MediaWiki\Page\Article::class ); /* < 1.42 */
33+
}
34+
}
35+
}

includes/Hooks.php

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -14,28 +14,6 @@
1414
use MediaWiki\Title\Title;
1515
use MediaWiki\User\User;
1616

17-
// Class aliases for multi-version compatibility.
18-
// These need to be in global scope so phan can pick up on them,
19-
// and before any use statements that make use of the namespaced names.
20-
if ( version_compare( MW_VERSION, '1.40', '<' ) ) {
21-
if ( !class_exists('MediaWiki\Title\Title') ) class_alias( '\Title', '\MediaWiki\Title\Title' );
22-
}
23-
24-
if ( version_compare( MW_VERSION, '1.41', '<' ) ) {
25-
if ( !class_exists('MediaWiki\Output\OutputPage') ) class_alias( '\OutputPage', '\MediaWiki\Output\OutputPage' );
26-
if ( !class_exists('MediaWiki\Request\WebRequest') ) class_alias( '\WebRequest', '\MediaWiki\Request\WebRequest' );
27-
if ( !class_exists('MediaWiki\SpecialPage\SpecialPage') ) class_alias( '\SpecialPage', '\MediaWiki\SpecialPage\SpecialPage' );
28-
if ( !class_exists('MediaWiki\User\User') ) class_alias( '\User', '\MediaWiki\User\User' );
29-
}
30-
31-
if ( version_compare( MW_VERSION, '1.42', '<' ) ) {
32-
if ( !class_exists('MediaWiki\Actions\ActionEntryPoint') ) class_alias( '\ActionEntryPoint', '\MediaWiki\Actions\ActionEntryPoint' );
33-
}
34-
35-
if ( version_compare( MW_VERSION, '1.44', '<' ) ) {
36-
if ( !class_exists('MediaWiki\Page\Article') ) class_alias( '\Article', '\MediaWiki\Page\Article' );
37-
}
38-
3917
class Hooks implements MediaWikiPerformActionHook, SpecialPageBeforeExecuteHook {
4018
/** @var string Prefix for special page names */
4119
private const SPECIAL_PAGE_PREFIX = 'Special:';

0 commit comments

Comments
 (0)