PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.0.13
Admin Columns v7.0.13
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 5 months ago Video 5 months ago AttachmentMetaData.php 5 months ago AttachmentUrl.php 5 months ago AudioPlayer.php 5 months ago AvailableSizes.php 5 months ago Dimensions.php 5 months ago Download.php 5 months ago ExifData.php 5 months ago FileLinkToUrl.php 5 months ago FileName.php 5 months ago FileSize.php 5 months ago Link.php 5 months ago NestedAttachmentMetaData.php 5 months ago NumberFormat.php 5 months ago PostMimeType.php 5 months ago PreviewViewLink.php 5 months ago VideoEmbed.php 5 months 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
14 private ?string $format;
15
16 private ?int $decimals;
17
18 public function __construct(string $format = null, ?int $decimals = 2)
19 {
20 $this->format = $format ?? 'bytes';
21 $this->decimals = $decimals;
22 }
23
24 public function format(Value $value): Value
25 {
26 $file = get_attached_file($value->get_id());
27
28 if ( ! file_exists($file)) {
29 throw ValueNotFoundException::from_id($value->get_id());
30 }
31
32 $bytes = filesize($file);
33
34 if ($bytes === false || $bytes <= 0) {
35 throw ValueNotFoundException::from_id($value->get_id());
36 }
37
38 switch ($this->format) {
39 case 'kb' :
40 $size = $bytes / 1024;
41 break;
42 case 'mb' :
43 $size = $bytes / (1024 * 1024);
44 break;
45 case 'gb' :
46 $size = $bytes / (1024 * 1024 * 1024);
47 break;
48 case 'tb' :
49 $size = $bytes / (1024 * 1024 * 1024 * 1024);
50 break;
51 default :
52 $size = $bytes;
53 }
54
55 if (null !== $this->decimals) {
56 $size = round($size, $this->decimals);
57 }
58
59 return $value->with_value(
60 (float)$size
61 );
62 }
63
64 }