PluginProbe
Disk Usage Insights / 1.0
Disk Usage Insights v1.0
trunk 1.0 1.10 1.11 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9
disk-usage-insights / src / Frontend / ScanResults.php

ScanResults.php in Disk Usage Insights 1.0, at src/Frontend/ScanResults.php

122 lines 4.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Mgleis\DiskUsageInsights\Frontend;
3
4 use Mgleis\DiskUsageInsights\Domain\DiskUsage;
5 use Mgleis\DiskUsageInsights\Frontend\Table;
6
7 class ScanResults {
8
9 public function execute() {
10
11 $root = \ABSPATH;
12
13 $d = new DiskUsage($root);
14 $res = $d->scan();
15 $totalSize = $d->calculateDirTotalSizes($res);
16 $d->calculateDirFileSizes($res);
17 $d->calculateDirFileCount($res);
18
19 echo '<div class="DUI-panel">';
20 echo '<div class="DUI-panel__content">';
21 echo sprintf("Root Directory: %s<br>\n", esc_html($root));
22 echo sprintf("Total Size: %s<br>\n", esc_html(number_format_i18n($totalSize)));
23 echo '</div>';
24 echo '</div>';
25
26 // Largest Files
27 $largestFiles = $d->calculateLargestFiles(20, $res);
28 $table = [];
29 foreach ($largestFiles as $file) {
30 $table[] = [
31 $file['abs'],
32 number_format_i18n($file['size']),
33 number_format_i18n(100 * $file['size'] / $totalSize, 2) . '%'
34 ];
35 }
36 (new Table(
37 'Largest Files',
38 ['Filename', 'Size', '%'],
39 ['', 'DUI-table__col--number', 'DUI-table__col--number']
40 ))->output($table);
41
42
43 // Largest Folders (files only)
44 $largestFiles = $d->calculateLargestFolders(20, $res);
45 $table = [];
46 foreach ($largestFiles as $file) {
47 $table[] = [
48 $file['abs'],
49 number_format_i18n($file['fileSizes']),
50 number_format_i18n($file['fileCount']),
51 number_format_i18n(round($file['fileSizes'] / $file['fileCount'])),
52 number_format_i18n(100 * $file['fileSizes'] / $totalSize, 2) . '%'
53 ];
54 }
55 (new Table(
56 'Largest Folders (files only)',
57 ['Folder', 'File Sizes', 'File Count', 'Avg File Size', '%'],
58 ['', 'DUI-table__col--number', 'DUI-table__col--number', 'DUI-table__col--number', 'DUI-table__col--number'
59 ]))->output($table);
60
61
62 // Largest Folders (incl. sub folders)
63 $largestFiles = $d->calculateLargestFoldersRecursive(20, $res);
64 $table = [];
65 foreach ($largestFiles as $file) {
66 $table[] = [$file['abs'], number_format_i18n($file['totalSize'])];
67 }
68 (new Table('Largest Folders (incl. sub folders)', ['Folder', 'Total Size'], ['', 'DUI-table__col--number']))->output($table);
69
70
71 // Folders with most files
72 $files = $d->calculateFoldersWithMostFiles(20, $res);
73 $table = [];
74 foreach ($files as $file) {
75 $table[] = [
76 $file['abs'],
77 number_format_i18n($file['fileCount']),
78 number_format_i18n($file['fileSizes']),
79 number_format_i18n(round($file['fileSizes'] / $file['fileCount']))
80 ];
81 }
82 (new Table(
83 'Folders with most files',
84 ['Folder', 'File Count', 'File Size', 'Avg File Size'],
85 ['', 'DUI-table__col--number', 'DUI-table__col--number', 'DUI-table__col--number']
86 ))->output($table);
87
88
89 // Largest Directories within /wp-content/plugins
90 $pluginsDirRelative = substr(\WP_CONTENT_DIR . '/plugins', strlen($root));
91 $subres = $d->findSubDir($res, $pluginsDirRelative);
92
93 $largestFiles = $d->calculateLargestFilesFoldersFirstLevel(20, $subres);
94 $table = [];
95 foreach ($largestFiles as $file) {
96 $table[] = [$file['name'], number_format_i18n($file['size'])];
97 }
98 (new Table(
99 'Largest Plugin Folders',
100 ['Folder', 'Total Size'],
101 ['', 'DUI-table__col--number']
102 ))->output($table);
103
104 // Largest Directories within /wp-content/themes
105 $pluginsDirRelative = substr(\WP_CONTENT_DIR . '/themes', strlen($root));
106 $subres = $d->findSubDir($res, $pluginsDirRelative);
107
108 $largestFiles = $d->calculateLargestFilesFoldersFirstLevel(20, $subres);
109 $table = [];
110 foreach ($largestFiles as $file) {
111 $table[] = [$file['name'], number_format_i18n($file['size'])];
112 }
113 (new Table(
114 'Largest Theme Folders',
115 ['Folder', 'Total Size'],
116 ['', 'DUI-table__col--number']
117 ))->output($table);
118
119 }
120
121 }
122