- public static function doAllAndCommit( $database, array $options = [] ) {
- $options += [ 'update' => false, 'activeUsers' => false ];
-
- // Grab the object and count everything
- $counter = new SiteStatsInit( $database );
-
- $counter->edits();
- $counter->articles();
- $counter->pages();
- $counter->users();
- $counter->files();
-
- $counter->refresh();
-
- // Count active users if need be
- if ( $options['activeUsers'] ) {
- SiteStatsUpdate::cacheUpdate( wfGetDB( DB_MASTER ) );
- }
- }
-
- /**
- * Refresh site_stats
- */
- public function refresh() {
- $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, [ 'ss_row_id' ], $values, __METHOD__ );