PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.1.4
Admin Columns v7.1.4
7.1.4 7.0.19 2.3.5 2.4 2.4.1 2.4.10 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.6.1 2.5.6.2 2.5.6.3 2.5.6.4 3.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.7 3.1 3.1.1 3.1.10 3.1.2 3.1.3 3.1.5 3.2.3 3.2.7 3.3.1 3.4.1 3.4.6 3.4.8 4.0.1 4.0.3 4.1.6 4.2.2 4.2.5 4.3 4.3.2 4.4.1 4.4.4 4.4.5 4.5.5 4.6.1 4.7.18 4.7.19 4.7.20 4.7.7 7.0.13 7.0.14 7.0.16 trunk 1.0 1.1 1.1.3 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.5.1 1.4.6 1.4.6.1 1.4.6.2 1.4.6.3 1.4.6.4 1.4.7 1.4.8 1.4.9 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.1.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.5.1 2.2.6 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7 2.2.8 2.2.8.1 2.2.9 2.3.1 2.3.2 2.3.3
codepress-admin-columns / classes / Formatter / Media / FileSize.php
codepress-admin-columns / classes / Formatter / Media Last commit date
Audio 2 days ago Video 2 days ago AttachmentMetaData.php 2 days ago AttachmentUrl.php 2 days ago AudioPlayer.php 2 days ago AvailableSizes.php 2 days ago Dimensions.php 2 days ago Download.php 2 days ago ExifData.php 2 days ago FileLinkToUrl.php 2 days ago FileName.php 2 days ago FileSize.php 2 days ago Link.php 2 days ago NestedAttachmentMetaData.php 2 days ago NumberFormat.php 2 days ago PostMimeType.php 2 days ago PreviewViewLink.php 2 days ago VideoEmbed.php 2 days ago
FileSize.php
64 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\Formatter\Media;
6
7 use AC\Exception\ValueNotFoundException;
8 use AC\Formatter;
9 use AC\Type\Value;
10
11 class FileSize implements Formatter
12 {
13 private ?string $format;
14
15 private ?int $decimals;
16
17 public function __construct(?string $format = null, ?int $decimals = 2)
18 {
19 $this->format = $format ?? 'bytes';
20 $this->decimals = $decimals;
21 }
22
23 public function format(Value $value): Value
24 {
25 $file = (string)get_attached_file($value->get_id());
26
27 if (! file_exists($file)) {
28 throw ValueNotFoundException::from_id($value->get_id());
29 }
30
31 $bytes = filesize($file);
32
33 if ($bytes === false || $bytes <= 0) {
34 throw ValueNotFoundException::from_id($value->get_id());
35 }
36
37 switch ($this->format) {
38 case 'kb':
39 $size = $bytes / 1024;
40 break;
41 case 'mb':
42 $size = $bytes / (1024 * 1024);
43 break;
44 case 'gb':
45 $size = $bytes / (1024 * 1024 * 1024);
46 break;
47 case 'tb':
48 $size = $bytes / (1024 * 1024 * 1024 * 1024);
49 break;
50 default:
51 $size = $bytes;
52 }
53
54 if (null !== $this->decimals) {
55 $size = round($size, $this->decimals);
56 }
57
58 return $value->with_value(
59 (float)$size
60 );
61 }
62
63 }
64