X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FGlobalFunctions.php;h=d21cc1d749cb69e24cd315ebfa6dc42a169dc9d0;hb=3b70100a856c511b0a84eed2e522dabb0b332cd2;hp=243d0661847d1da1acaa3d9bb39e9c177319edfe;hpb=53034b5e4a4dca2bc0b17962fee9a365362ee62c;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/GlobalFunctions.php b/includes/GlobalFunctions.php index 243d066184..d21cc1d749 100644 --- a/includes/GlobalFunctions.php +++ b/includes/GlobalFunctions.php @@ -27,7 +27,9 @@ if ( !defined( 'MEDIAWIKI' ) ) { use Liuggio\StatsdClient\Sender\SocketSender; use MediaWiki\Logger\LoggerFactory; use MediaWiki\Session\SessionManager; +use MediaWiki\MediaWikiServices; use Wikimedia\ScopedCallback; +use Wikimedia\Rdbms\DBReplicationWaitError; // Hide compatibility functions from Doxygen /// @cond @@ -1197,7 +1199,9 @@ function wfLogProfilingData() { $statsdSender = new SocketSender( $statsdHost, $statsdPort ); $statsdClient = new SamplingStatsdClient( $statsdSender, true, false ); $statsdClient->setSamplingRates( $config->get( 'StatsdSamplingRates' ) ); - $statsdClient->send( $context->getStats()->getBuffer() ); + $statsdClient->send( + MediaWikiServices::getInstance()->getStatsdDataFactory()->getBuffer() + ); } catch ( Exception $ex ) { MWExceptionHandler::logException( $ex ); } @@ -1262,7 +1266,7 @@ function wfLogProfilingData() { * @return void */ function wfIncrStats( $key, $count = 1 ) { - $stats = RequestContext::getMain()->getStats(); + $stats = MediaWikiServices::getInstance()->getStatsdDataFactory(); $stats->updateCount( $key, $count ); } @@ -1272,7 +1276,8 @@ function wfIncrStats( $key, $count = 1 ) { * @return bool */ function wfReadOnly() { - return wfReadOnlyReason() !== false; + return \MediaWiki\MediaWikiServices::getInstance()->getReadOnlyMode() + ->isReadOnly(); } /** @@ -1284,19 +1289,8 @@ function wfReadOnly() { * @return string|bool String when in read-only mode; false otherwise */ function wfReadOnlyReason() { - $readOnly = wfConfiguredReadOnlyReason(); - if ( $readOnly !== false ) { - return $readOnly; - } - - static $lbReadOnly = null; - if ( $lbReadOnly === null ) { - // Callers use this method to be aware that data presented to a user - // may be very stale and thus allowing submissions can be problematic. - $lbReadOnly = wfGetLB()->getReadOnlyReason(); - } - - return $lbReadOnly; + return \MediaWiki\MediaWikiServices::getInstance()->getReadOnlyMode() + ->getReason(); } /** @@ -1306,18 +1300,8 @@ function wfReadOnlyReason() { * @since 1.27 */ function wfConfiguredReadOnlyReason() { - global $wgReadOnly, $wgReadOnlyFile; - - if ( $wgReadOnly === null ) { - // Set $wgReadOnly for faster access next time - if ( is_file( $wgReadOnlyFile ) && filesize( $wgReadOnlyFile ) > 0 ) { - $wgReadOnly = file_get_contents( $wgReadOnlyFile ); - } else { - $wgReadOnly = false; - } - } - - return $wgReadOnly; + return \MediaWiki\MediaWikiServices::getInstance()->getConfiguredReadOnlyMode() + ->getReason(); } /** @@ -1452,7 +1436,6 @@ function wfMsgReplaceArgs( $message, $args ) { function wfHostname() { static $host; if ( is_null( $host ) ) { - # Hostname overriding global $wgOverrideHostname; if ( $wgOverrideHostname !== false ) { @@ -2551,8 +2534,15 @@ function wfShellExecWithStderr( $cmd, &$retval = null, $environ = [], $limits = } /** - * Workaround for https://bugs.php.net/bug.php?id=45132 - * escapeshellarg() destroys non-ASCII characters if LANG is not a UTF-8 locale + * Set the locale for locale-sensitive operations + * + * Sets LC_ALL to a known value to work around issues like the following: + * - https://bugs.php.net/bug.php?id=45132 escapeshellarg() destroys non-ASCII + * characters if LANG is not a UTF-8 locale + * - T107128 Scribunto string comparison works case insensitive while the + * standard Lua case sensitive + * + * @see $wgShellLocale */ function wfInitShellLocale() { static $done = false; @@ -2561,8 +2551,8 @@ function wfInitShellLocale() { } $done = true; global $wgShellLocale; - putenv( "LC_CTYPE=$wgShellLocale" ); - setlocale( LC_CTYPE, $wgShellLocale ); + putenv( "LC_ALL=$wgShellLocale" ); + setlocale( LC_ALL, $wgShellLocale ); } /**