private static $jobs;
/** @var int[] */
- private static $pageCount = array();
+ private static $pageCount = [];
/** @var int[] */
- private static $groupMemberCounts = array();
+ private static $groupMemberCounts = [];
static function recache() {
self::load( true );
* @return bool|ResultWrapper
*/
static function doLoad( $db ) {
- return $db->selectRow( 'site_stats', array(
+ return $db->selectRow( 'site_stats', [
'ss_row_id',
'ss_total_edits',
'ss_good_articles',
'ss_users',
'ss_active_users',
'ss_images',
- ), false, __METHOD__ );
+ ], false, __METHOD__ );
}
/**
* @return int
*/
static function numberingroup( $group ) {
- if ( !isset( self::$groupMemberCounts[$group] ) ) {
- global $wgMemc;
- $key = wfMemcKey( 'SiteStats', 'groupcounts', $group );
- $hit = $wgMemc->get( $key );
- if ( !$hit ) {
+ $cache = ObjectCache::getMainWANInstance();
+ return $cache->getWithSetCallback(
+ wfMemcKey( 'SiteStats', 'groupcounts', $group ),
+ $cache::TTL_HOUR,
+ function ( $oldValue, &$ttl, array &$setOpts ) use ( $group ) {
$dbr = wfGetDB( DB_SLAVE );
- $hit = $dbr->selectField(
+
+ $setOpts += Database::getCacheSetOptions( $dbr );
+
+ return $dbr->selectField(
'user_groups',
'COUNT(*)',
- array( 'ug_group' => $group ),
+ [ 'ug_group' => $group ],
__METHOD__
);
- $wgMemc->set( $key, $hit, 3600 );
- }
- self::$groupMemberCounts[$group] = $hit;
- }
- return self::$groupMemberCounts[$group];
+ },
+ [ 'pcTTL' => 10 ]
+ );
}
/**
self::$pageCount[$ns] = (int)$dbr->selectField(
'page',
'COUNT(*)',
- array( 'page_namespace' => $ns ),
+ [ 'page_namespace' => $ns ],
__METHOD__
);
}
return false;
}
// Now check for underflow/overflow
- foreach ( array(
+ foreach ( [
'ss_total_edits',
'ss_good_articles',
'ss_total_pages',
'ss_users',
'ss_images',
- ) as $member ) {
+ ] as $member ) {
if ( $row->$member > 2000000000 || $row->$member < 0 ) {
return false;
}
public function articles() {
global $wgArticleCountMethod;
- $tables = array( 'page' );
- $conds = array(
+ $tables = [ 'page' ];
+ $conds = [
'page_namespace' => MWNamespace::getContentNamespaces(),
'page_is_redirect' => 0,
- );
+ ];
if ( $wgArticleCountMethod == 'link' ) {
$tables[] = 'pagelinks';
* @param array $options Array of options, may contain the following values
* - activeUsers boolean: Whether to update the number of active users (default: false)
*/
- public static function doAllAndCommit( $database, array $options = array() ) {
- $options += array( 'update' => false, 'activeUsers' => false );
+ public static function doAllAndCommit( $database, array $options = [] ) {
+ $options += [ 'update' => false, 'activeUsers' => false ];
// Grab the object and count everything
$counter = new SiteStatsInit( $database );
* Refresh site_stats
*/
public function refresh() {
- $values = array(
+ $values = [
'ss_row_id' => 1,
'ss_total_edits' => ( $this->mEdits === null ? $this->edits() : $this->mEdits ),
'ss_good_articles' => ( $this->mArticles === null ? $this->articles() : $this->mArticles ),
'ss_total_pages' => ( $this->mPages === null ? $this->pages() : $this->mPages ),
'ss_users' => ( $this->mUsers === null ? $this->users() : $this->mUsers ),
'ss_images' => ( $this->mFiles === null ? $this->files() : $this->mFiles ),
- );
+ ];
$dbw = wfGetDB( DB_MASTER );
- $dbw->upsert( 'site_stats', $values, array( 'ss_row_id' ), $values, __METHOD__ );
+ $dbw->upsert( 'site_stats', $values, [ 'ss_row_id' ], $values, __METHOD__ );
}
}