Skip to content

Commit 9e1bbcf

Browse files
authored
Better class aliasing for compatibility with MediaWiki
I guess class_alias( '\MediaWiki', '\MediaWiki\Actions\ActionEntryPoint' ) is a mistake, it should be class_alias( '\ ActionEntryPoint', '\MediaWiki\Actions\ActionEntryPoint' ) And if ( class_exists( \ClassName::class ) ) is a better and more secure choice to if ( version_compare( MW_VERSION, '1.xy', '<' ) )
1 parent ca5f8e9 commit 9e1bbcf

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

includes/Hooks.php

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,19 +29,26 @@
2929
// These need to be in global scope so phan can pick up on them,
3030
// and before any use statements that make use of the namespaced names.
3131

32-
if ( version_compare( MW_VERSION, '1.41', '<' ) ) {
33-
class_alias( '\OutputPage', '\MediaWiki\Output\OutputPage' );
34-
class_alias( '\SpecialPage', '\MediaWiki\SpecialPage\SpecialPage' );
35-
class_alias( '\User', '\MediaWiki\User\User' );
36-
class_alias( '\WebRequest', '\MediaWiki\Request\WebRequest' );
32+
if ( class_exists( \Title::class ) && !class_exists( \MediaWiki\Title\Title::class ) ) {
33+
class_alias( \Title::class, \MediaWiki\Title\Title::class ); /* < 1.40 */
3734
}
38-
39-
if ( version_compare( MW_VERSION, '1.42', '<' ) ) {
40-
class_alias( '\MediaWiki', '\MediaWiki\Actions\ActionEntryPoint' );
35+
if ( class_exists( \OutputPage::class ) && !class_exists( \MediaWiki\Output\OutputPage::class ) ) {
36+
class_alias( \OutputPage::class, \MediaWiki\Output\OutputPage::class ); /* < 1.41 */
4137
}
42-
43-
if ( version_compare( MW_VERSION, '1.44', '<' ) ) {
44-
class_alias( '\Article', '\MediaWiki\Page\Article' );
38+
if ( class_exists( \WebRequest::class ) && !class_exists( \MediaWiki\Request\WebRequest::class ) ) {
39+
class_alias( \WebRequest::class, \MediaWiki\Request\WebRequest::class ); /* < 1.41 */
40+
}
41+
if ( class_exists( \SpecialPage::class ) && !class_exists( \MediaWiki\SpecialPage\SpecialPage::class ) ) {
42+
class_alias( \SpecialPage::class, \MediaWiki\SpecialPage\SpecialPage::class ); /* < 1.41 */
43+
}
44+
if ( class_exists( \User::class ) && !class_exists( \MediaWiki\User\User::class ) ) {
45+
class_alias( \User::class, \MediaWiki\User\User::class ); /* < 1.41 */
46+
}
47+
if ( class_exists( \ActionEntryPoint::class ) && !class_exists( \MediaWiki\Actions\ActionEntryPoint::class ) ) {
48+
class_alias( \ActionEntryPoint::class, \MediaWiki\Actions\ActionEntryPoint::class ); /* < 1.42 */
49+
}
50+
if ( class_exists( \Article::class ) && !class_exists( \MediaWiki\Page\Article::class ) ) {
51+
class_alias( \Article::class, \MediaWiki\Page\Article::class ); /* < 1.42 */
4552
}
4653

4754
use MediaWiki\Actions\ActionEntryPoint;

0 commit comments

Comments
 (0)