37 lines
802 B
PHP
37 lines
802 B
PHP
<?php
|
|
|
|
|
|
namespace App\Twig;
|
|
|
|
use Twig\Extension\AbstractExtension;
|
|
use Twig\TwigFilter;
|
|
use Twig\TwigFunction;
|
|
|
|
class AppExtension extends AbstractExtension
|
|
{
|
|
public function getFunctions()
|
|
{
|
|
return [
|
|
new TwigFunction('file_exists', [$this, 'file_exists']),
|
|
];
|
|
}
|
|
|
|
public function getFilters()
|
|
{
|
|
return [
|
|
new TwigFilter('bytes_format', [$this, 'bytes_format']),
|
|
];
|
|
}
|
|
|
|
public function file_exists(string $file): bool
|
|
{
|
|
return file_exists(ltrim($file, '/'));
|
|
}
|
|
|
|
public function bytes_format(int $bytes): string
|
|
{
|
|
$base = log($bytes) / log(1024);
|
|
$suffix = array("B", "KB", "MB", "GB", "TB")[floor($base)];
|
|
return round(pow(1024, $base - floor($base)), 2) . $suffix;
|
|
}
|
|
} |