@@ 22-58 (lines=37) @@ | ||
19 | * Class HumanReadableExtension |
|
20 | * @package phpFastCache\Bundle\Twig |
|
21 | */ |
|
22 | class HumanReadableExtension extends \Twig_Extension |
|
23 | { |
|
24 | /** |
|
25 | * @return array |
|
26 | */ |
|
27 | public function getFilters() |
|
28 | { |
|
29 | return array( |
|
30 | new \Twig_SimpleFilter('sizeFormat', [$this, 'size_format']), |
|
31 | ); |
|
32 | } |
|
33 | /** |
|
34 | * @param int $bytes Bytes/Octets |
|
35 | * @param int $decimals Number for decimals to return |
|
36 | * @param bool $octetFormat Use Octet notation instead of Bytes |
|
37 | * |
|
38 | * @return string |
|
39 | */ |
|
40 | public function size_format($bytes, $decimals = 2, $octetFormat = false) |
|
41 | { |
|
42 | $bytes = (int) $bytes; |
|
43 | $sz = 'BKMGTP'; |
|
44 | $factor = floor(( strlen($bytes) - 1 ) / 3); |
|
45 | ||
46 | return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)).@$sz[ $factor ].( $factor ? ($octetFormat ? 'O' : 'B') : '' ); |
|
47 | } |
|
48 | ||
49 | /** |
|
50 | * Extension name |
|
51 | * |
|
52 | * @return string |
|
53 | */ |
|
54 | public function getName() |
|
55 | { |
|
56 | return 'human_readable_extension'; |
|
57 | } |
|
58 | } |
@@ 23-59 (lines=37) @@ | ||
20 | * Class HumanReadableExtension |
|
21 | * @package phpFastCache\Bundle\Twig |
|
22 | */ |
|
23 | class Extension extends \Twig_Extension |
|
24 | { |
|
25 | /** |
|
26 | * @return array |
|
27 | */ |
|
28 | public function getFilters() |
|
29 | { |
|
30 | return array( |
|
31 | new \Twig_SimpleFilter('sizeFormat', [$this, 'size_format']), |
|
32 | ); |
|
33 | } |
|
34 | /** |
|
35 | * @param int $bytes Bytes/Octets |
|
36 | * @param int $decimals Number for decimals to return |
|
37 | * @param bool $octetFormat Use Octet notation instead of Bytes |
|
38 | * |
|
39 | * @return string |
|
40 | */ |
|
41 | public function size_format($bytes, $decimals = 2, $octetFormat = false) |
|
42 | { |
|
43 | $bytes = (int) $bytes; |
|
44 | $sz = 'BKMGTP'; |
|
45 | $factor = floor(( strlen($bytes) - 1 ) / 3); |
|
46 | ||
47 | return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)).@$sz[ $factor ].( $factor ? ($octetFormat ? 'O' : 'B') : '' ); |
|
48 | } |
|
49 | ||
50 | /** |
|
51 | * Extension name |
|
52 | * |
|
53 | * @return string |
|
54 | */ |
|
55 | public function getName() |
|
56 | { |
|
57 | return 'human_readable_extension'; |
|
58 | } |
|
59 | } |