From 9e1bbcf3c47b0a8c571994b0e3444dd92d05a767 Mon Sep 17 00:00:00 2001 From: WikiMANNia <55834825+WikiMANNia@users.noreply.github.com> Date: Mon, 30 Mar 2026 17:31:29 +0200 Subject: [PATCH] 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', '<' ) ) --- includes/Hooks.php | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/includes/Hooks.php b/includes/Hooks.php index fa8329f..915cbd2 100644 --- a/includes/Hooks.php +++ b/includes/Hooks.php @@ -29,19 +29,26 @@ // These need to be in global scope so phan can pick up on them, // and before any use statements that make use of the namespaced names. -if ( version_compare( MW_VERSION, '1.41', '<' ) ) { - class_alias( '\OutputPage', '\MediaWiki\Output\OutputPage' ); - class_alias( '\SpecialPage', '\MediaWiki\SpecialPage\SpecialPage' ); - class_alias( '\User', '\MediaWiki\User\User' ); - class_alias( '\WebRequest', '\MediaWiki\Request\WebRequest' ); +if ( class_exists( \Title::class ) && !class_exists( \MediaWiki\Title\Title::class ) ) { + class_alias( \Title::class, \MediaWiki\Title\Title::class ); /* < 1.40 */ } - -if ( version_compare( MW_VERSION, '1.42', '<' ) ) { - class_alias( '\MediaWiki', '\MediaWiki\Actions\ActionEntryPoint' ); +if ( class_exists( \OutputPage::class ) && !class_exists( \MediaWiki\Output\OutputPage::class ) ) { + class_alias( \OutputPage::class, \MediaWiki\Output\OutputPage::class ); /* < 1.41 */ } - -if ( version_compare( MW_VERSION, '1.44', '<' ) ) { - class_alias( '\Article', '\MediaWiki\Page\Article' ); +if ( class_exists( \WebRequest::class ) && !class_exists( \MediaWiki\Request\WebRequest::class ) ) { + class_alias( \WebRequest::class, \MediaWiki\Request\WebRequest::class ); /* < 1.41 */ +} +if ( class_exists( \SpecialPage::class ) && !class_exists( \MediaWiki\SpecialPage\SpecialPage::class ) ) { + class_alias( \SpecialPage::class, \MediaWiki\SpecialPage\SpecialPage::class ); /* < 1.41 */ +} +if ( class_exists( \User::class ) && !class_exists( \MediaWiki\User\User::class ) ) { + class_alias( \User::class, \MediaWiki\User\User::class ); /* < 1.41 */ +} +if ( class_exists( \ActionEntryPoint::class ) && !class_exists( \MediaWiki\Actions\ActionEntryPoint::class ) ) { + class_alias( \ActionEntryPoint::class, \MediaWiki\Actions\ActionEntryPoint::class ); /* < 1.42 */ +} +if ( class_exists( \Article::class ) && !class_exists( \MediaWiki\Page\Article::class ) ) { + class_alias( \Article::class, \MediaWiki\Page\Article::class ); /* < 1.42 */ } use MediaWiki\Actions\ActionEntryPoint;