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

Reply via email to