Files
backupscript/src/Twig/AppExtension.php
Jens True 9d0d188d01
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
More code standards
2023-06-05 09:40:04 +00:00

45 lines
1.1 KiB
PHP

<?php
namespace App\Twig;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Twig\Extension\AbstractExtension;
use Twig\TwigFilter;
/**
* Twig extension
*
* Additional formatters for templates
*
* @author Jens True <jens.chr.true@gmail.com>
* @license https://opensource.org/licenses/gpl-license.php GNU Public License
* @link https://jcktrue.dk
*/
class AppExtension extends AbstractExtension
{
/**
* Extend the filters
*/
public function getFilters()
{
return array(
new TwigFilter('formatBytes', array($this, 'formatBytes')),
);
}
/**
* Format a file size to be human readable
*
* @param int $bytes Number of bytes
* @param int $precision Precision
*
* @return string Formatted string
*/
public function formatBytes($bytes, $precision = 2)
{
$size = ['B','kB','MB','GB','TB','PB','EB','ZB','YB'];
$fact = (int)(floor((strlen((string)$bytes) - 1) / 3));
return sprintf("%.{$precision}f", $bytes / pow(1024, $fact)) . $size[$fact];
}
}