Thiemo Kreuz (WMDE) has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/398797 )
Change subject: Replace class_exists with proper extension registration checks
......................................................................
Replace class_exists with proper extension registration checks
This patch does not fully solve the issue, but focuses on production
code.
Bug: T183096
Change-Id: Ifdb0e2c97eed0fa6d93d6b89339f6628e0233078
---
M client/WikibaseClient.hooks.php
M lib/includes/LanguageFallbackChainFactory.php
M repo/includes/BabelUserLanguageLookup.php
M repo/includes/ParserOutput/EntityParserOutputGeneratorFactory.php
M repo/includes/ParserOutput/GeoDataDataUpdater.php
M repo/includes/Specials/SpecialMyLanguageFallbackChain.php
6 files changed, 17 insertions(+), 7 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/97/398797/1
diff --git a/client/WikibaseClient.hooks.php b/client/WikibaseClient.hooks.php
index facd5f1..88caa01 100644
--- a/client/WikibaseClient.hooks.php
+++ b/client/WikibaseClient.hooks.php
@@ -6,6 +6,7 @@
use BaseTemplate;
use EchoEvent;
use EditPage;
+use ExtensionRegistry;
use OutputPage;
use Parser;
use RecentChange;
@@ -343,7 +344,7 @@
global $wgHooks;
// These hooks should only be run if we use the Echo extension
- if ( class_exists( EchoEvent::class ) ) {
+ if ( ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) ) {
$wgHooks['LocalUserCreated'][] =
EchoNotificationsHandlers::class . '::onLocalUserCreated';
$wgHooks['WikibaseHandleChange'][] =
EchoNotificationsHandlers::class . '::onWikibaseHandleChange';
}
diff --git a/lib/includes/LanguageFallbackChainFactory.php
b/lib/includes/LanguageFallbackChainFactory.php
index 6693045..63d6436 100644
--- a/lib/includes/LanguageFallbackChainFactory.php
+++ b/lib/includes/LanguageFallbackChainFactory.php
@@ -3,6 +3,7 @@
namespace Wikibase;
use Babel;
+use ExtensionRegistry;
use IContextSource;
use InvalidArgumentException;
use Language;
@@ -209,7 +210,7 @@
* @return LanguageFallbackChain
*/
public function newFromUserAndLanguageCode( User $user, $languageCode )
{
- if ( !class_exists( Babel::class ) || $user->isAnon() ) {
+ if ( !ExtensionRegistry::getInstance()->isLoaded( 'Babel' ) ||
$user->isAnon() ) {
return $this->newFromLanguageCode( $languageCode,
self::FALLBACK_ALL );
}
diff --git a/repo/includes/BabelUserLanguageLookup.php
b/repo/includes/BabelUserLanguageLookup.php
index 16116de..0d83f82 100644
--- a/repo/includes/BabelUserLanguageLookup.php
+++ b/repo/includes/BabelUserLanguageLookup.php
@@ -3,6 +3,7 @@
namespace Wikibase\Repo;
use Babel;
+use ExtensionRegistry;
use User;
use Wikibase\Lib\UserLanguageLookup;
@@ -35,7 +36,7 @@
// Lazy initialisation
if ( !isset( $this->babelLanguages[$key] ) ) {
// If the extension is installed, grab the languages
from the user's Babel box
- if ( class_exists( Babel::class ) && !$user->isAnon() )
{
+ if ( ExtensionRegistry::getInstance()->isLoaded(
'Babel' ) && !$user->isAnon() ) {
$this->babelLanguages[$key] =
Babel::getCachedUserLanguages( $user );
} else {
$this->babelLanguages[$key] = [];
diff --git a/repo/includes/ParserOutput/EntityParserOutputGeneratorFactory.php
b/repo/includes/ParserOutput/EntityParserOutputGeneratorFactory.php
index 5514e95..5a57a65 100644
--- a/repo/includes/ParserOutput/EntityParserOutputGeneratorFactory.php
+++ b/repo/includes/ParserOutput/EntityParserOutputGeneratorFactory.php
@@ -2,6 +2,7 @@
namespace Wikibase\Repo\ParserOutput;
+use ExtensionRegistry;
use GeoData\GeoData;
use Language;
use PageImages;
@@ -188,14 +189,16 @@
new ImageLinksDataUpdater( $propertyDataTypeMatcher )
];
- if ( !empty( $this->preferredPageImagesProperties ) &&
class_exists( PageImages::class ) ) {
+ if ( !empty( $this->preferredPageImagesProperties )
+ && ExtensionRegistry::getInstance()->isLoaded(
'PageImages' )
+ ) {
$updaters[] = new PageImagesDataUpdater(
$this->preferredPageImagesProperties,
PageImages::PROP_NAME_FREE
);
}
- if ( class_exists( GeoData::class ) ) {
+ if ( ExtensionRegistry::getInstance()->isLoaded( 'GeoData' ) ) {
$updaters[] = new GeoDataDataUpdater(
$propertyDataTypeMatcher,
$this->preferredGeoDataProperties,
diff --git a/repo/includes/ParserOutput/GeoDataDataUpdater.php
b/repo/includes/ParserOutput/GeoDataDataUpdater.php
index 33a6fc3..2ad5d7f 100644
--- a/repo/includes/ParserOutput/GeoDataDataUpdater.php
+++ b/repo/includes/ParserOutput/GeoDataDataUpdater.php
@@ -3,6 +3,7 @@
namespace Wikibase\Repo\ParserOutput;
use DataValues\Geo\Values\GlobeCoordinateValue;
+use ExtensionRegistry;
use GeoData\Coord;
use GeoData\CoordinatesOutput;
use GeoData\GeoData;
@@ -61,7 +62,7 @@
array $preferredPropertiesIds,
array $globeUris
) {
- if ( !class_exists( GeoData::class ) ) {
+ if ( !ExtensionRegistry::getInstance()->isLoaded( 'GeoData' ) )
{
throw new RuntimeException( 'GeoDataDataUpdater
requires the GeoData extension '
. 'to be enabled' );
}
diff --git a/repo/includes/Specials/SpecialMyLanguageFallbackChain.php
b/repo/includes/Specials/SpecialMyLanguageFallbackChain.php
index 95bfd1c..acd5652 100644
--- a/repo/includes/Specials/SpecialMyLanguageFallbackChain.php
+++ b/repo/includes/Specials/SpecialMyLanguageFallbackChain.php
@@ -3,6 +3,7 @@
namespace Wikibase\Repo\Specials;
use Babel;
+use ExtensionRegistry;
use Html;
use IContextSource;
use Language;
@@ -100,7 +101,9 @@
$this->outputHeader();
$this->getOutput()->addWikiMsg(
'wikibase-mylanguagefallbackchain-text' );
- if ( class_exists( Babel::class ) &&
!$this->getContext()->getUser()->isAnon() ) {
+ if ( ExtensionRegistry::getInstance()->isLoaded( 'Babel' )
+ && !$this->getContext()->getUser()->isAnon()
+ ) {
$this->getOutput()->addWikiMsg(
'wikibase-mylanguagefallbackchain-babel',
$this->getContext()->getUser()->getName() );
}
--
To view, visit https://gerrit.wikimedia.org/r/398797
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifdb0e2c97eed0fa6d93d6b89339f6628e0233078
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Thiemo Kreuz (WMDE) <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits