Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 28 |
|
0.00% |
0 / 2 |
CRAP | |
0.00% |
0 / 1 |
ShowSiteStats | |
0.00% |
0 / 25 |
|
0.00% |
0 / 2 |
20 | |
0.00% |
0 / 1 |
__construct | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
2 | |||
execute | |
0.00% |
0 / 23 |
|
0.00% |
0 / 1 |
12 |
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 | require_once __DIR__ . '/Maintenance.php'; |
33 | |
34 | /** |
35 | * Maintenance script to show the cached statistics. |
36 | * |
37 | * @ingroup Maintenance |
38 | */ |
39 | class ShowSiteStats extends Maintenance { |
40 | public function __construct() { |
41 | parent::__construct(); |
42 | $this->addDescription( 'Show the cached statistics' ); |
43 | } |
44 | |
45 | public function execute() { |
46 | $fields = [ |
47 | 'ss_total_edits' => 'Total edits', |
48 | 'ss_good_articles' => 'Number of articles', |
49 | 'ss_total_pages' => 'Total pages', |
50 | 'ss_users' => 'Number of users', |
51 | 'ss_active_users' => 'Active users', |
52 | 'ss_images' => 'Number of images', |
53 | ]; |
54 | |
55 | // Get cached stats from a replica DB |
56 | $dbr = $this->getReplicaDB(); |
57 | $stats = $dbr->newSelectQueryBuilder() |
58 | ->select( '*' ) |
59 | ->from( 'site_stats' ) |
60 | ->caller( __METHOD__ )->fetchRow(); |
61 | |
62 | // Get maximum size for each column |
63 | $max_length_value = $max_length_desc = 0; |
64 | foreach ( $fields as $field => $desc ) { |
65 | $max_length_value = max( $max_length_value, strlen( $stats->$field ) ); |
66 | $max_length_desc = max( $max_length_desc, strlen( $desc ) ); |
67 | } |
68 | |
69 | // Show them |
70 | foreach ( $fields as $field => $desc ) { |
71 | $this->output( sprintf( |
72 | "%-{$max_length_desc}s: %{$max_length_value}d\n", |
73 | $desc, |
74 | $stats->$field |
75 | ) ); |
76 | } |
77 | } |
78 | } |
79 | |
80 | $maintClass = ShowSiteStats::class; |
81 | require_once RUN_MAINTENANCE_IF_MAIN; |