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
/**
* Merge arrays in the style of getUserPermissionsErrors, with duplicate removal
* e.g.
- * wfMergeErrorArrays(
- * [ [ 'x' ] ],
- * [ [ 'x', '2' ] ],
- * [ [ 'x' ] ],
- * [ [ 'y' ] ]
- * );
+ * wfMergeErrorArrays(
+ * [ [ 'x' ] ],
+ * [ [ 'x', '2' ] ],
+ * [ [ 'x' ] ],
+ * [ [ 'y' ] ]
+ * );
* returns:
- * [
- * [ 'x', '2' ],
- * [ 'x' ],
- * [ 'y' ]
- * ]
+ * [
+ * [ 'x', '2' ],
+ * [ 'x' ],
+ * [ 'y' ]
+ * ]
*
* @param array $array1,...
* @return array
$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 );
}
* @return void
*/
function wfIncrStats( $key, $count = 1 ) {
- $stats = RequestContext::getMain()->getStats();
+ $stats = MediaWikiServices::getInstance()->getStatsdDataFactory();
$stats->updateCount( $key, $count );
}
* @return bool
*/
function wfReadOnly() {
- return wfReadOnlyReason() !== false;
+ return \MediaWiki\MediaWikiServices::getInstance()->getReadOnlyMode()
+ ->isReadOnly();
}
/**
* @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();
}
/**
* @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();
}
/**
* @param string $script MediaWiki cli script path
* @param array $parameters Arguments and options to the script
* @param array $options Associative array of options:
- * 'php': The path to the php executable
- * 'wrapper': Path to a PHP wrapper to handle the maintenance script
+ * 'php': The path to the php executable
+ * 'wrapper': Path to a PHP wrapper to handle the maintenance script
* @return string
*/
function wfShellWikiCmd( $script, array $parameters = [], array $options = [] ) {
* @todo Replace calls to wfGetDB with calls to LoadBalancer::getConnection()
* on an injected instance of LoadBalancer.
*
- * @return Database
+ * @return \Wikimedia\Rdbms\Database
*/
function wfGetDB( $db, $groups = [], $wiki = false ) {
return wfGetLB( $wiki )->getConnection( $db, $groups, $wiki );