Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
100.00% |
25 / 25 |
|
100.00% |
2 / 2 |
CRAP | |
100.00% |
1 / 1 |
ShowSiteStats | |
100.00% |
25 / 25 |
|
100.00% |
2 / 2 |
4 | |
100.00% |
1 / 1 |
__construct | |
100.00% |
2 / 2 |
|
100.00% |
1 / 1 |
1 | |||
execute | |
100.00% |
23 / 23 |
|
100.00% |
1 / 1 |
3 |
1 | <?php |
2 | |
3 | /** |
4 | * Show the cached statistics. |
5 | * Give out the same output as [[Special:Statistics]] |
6 | * |
7 | * This program is free software; you can redistribute it and/or modify |
8 | * it under the terms of the GNU General Public License as published by |
9 | * the Free Software Foundation; either version 2 of the License, or |
10 | * (at your option) any later version. |
11 | * |
12 | * This program is distributed in the hope that it will be useful, |
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
15 | * GNU General Public License for more details. |
16 | * |
17 | * You should have received a copy of the GNU General Public License along |
18 | * with this program; if not, write to the Free Software Foundation, Inc., |
19 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
20 | * http://www.gnu.org/copyleft/gpl.html |
21 | * |
22 | * @file |
23 | * @ingroup Maintenance |
24 | * @author Antoine Musso <hashar at free dot fr> |
25 | * Based on initSiteStats.php by: |
26 | * @author Brooke Vibber |
27 | * @author Rob Church <robchur@gmail.com> |
28 | * |
29 | * @license GPL-2.0-or-later |
30 | */ |
31 | |
32 | use MediaWiki\Maintenance\Maintenance; |
33 | |
34 | // @codeCoverageIgnoreStart |
35 | require_once __DIR__ . '/Maintenance.php'; |
36 | // @codeCoverageIgnoreEnd |
37 | |
38 | /** |
39 | * Maintenance script to show the cached statistics. |
40 | * |
41 | * @ingroup Maintenance |
42 | */ |
43 | class ShowSiteStats extends Maintenance { |
44 | public function __construct() { |
45 | parent::__construct(); |
46 | $this->addDescription( 'Show the cached statistics' ); |
47 | } |
48 | |
49 | public function execute() { |
50 | $fields = [ |
51 | 'ss_total_edits' => 'Total edits', |
52 | 'ss_good_articles' => 'Number of articles', |
53 | 'ss_total_pages' => 'Total pages', |
54 | 'ss_users' => 'Number of users', |
55 | 'ss_active_users' => 'Active users', |
56 | 'ss_images' => 'Number of images', |
57 | ]; |
58 | |
59 | // Get cached stats from a replica DB |
60 | $dbr = $this->getReplicaDB(); |
61 | $stats = $dbr->newSelectQueryBuilder() |
62 | ->select( '*' ) |
63 | ->from( 'site_stats' ) |
64 | ->caller( __METHOD__ )->fetchRow(); |
65 | |
66 | // Get maximum size for each column |
67 | $max_length_value = $max_length_desc = 0; |
68 | foreach ( $fields as $field => $desc ) { |
69 | $max_length_value = max( $max_length_value, strlen( $stats->$field ) ); |
70 | $max_length_desc = max( $max_length_desc, strlen( $desc ) ); |
71 | } |
72 | |
73 | // Show them |
74 | foreach ( $fields as $field => $desc ) { |
75 | $this->output( sprintf( |
76 | "%-{$max_length_desc}s: %{$max_length_value}d\n", |
77 | $desc, |
78 | $stats->$field |
79 | ) ); |
80 | } |
81 | } |
82 | } |
83 | |
84 | // @codeCoverageIgnoreStart |
85 | $maintClass = ShowSiteStats::class; |
86 | require_once RUN_MAINTENANCE_IF_MAIN; |
87 | // @codeCoverageIgnoreEnd |