40 lines
815 B
PHP
40 lines
815 B
PHP
<?php
|
|
|
|
namespace App\Twig\Extensions;
|
|
|
|
use App\Monitor\Framework\Entity\Monitor;
|
|
use App\Monitor\Service\MediaFiles;
|
|
use ChrisUllyott\FileSize;
|
|
use Twig\Attribute\AsTwigFilter;
|
|
use Twig\Attribute\AsTwigFunction;
|
|
|
|
class UtilExtension
|
|
{
|
|
|
|
public function __construct(
|
|
private readonly MediaFiles $mediaFiles,
|
|
) {}
|
|
|
|
#[AsTwigFunction('uniqid')]
|
|
public function uniqid(): string
|
|
{
|
|
return uniqid();
|
|
}
|
|
|
|
#[AsTwigFilter('filesize')]
|
|
public function type(string|int $size)
|
|
{
|
|
return (new FileSize($size))->asAuto();
|
|
}
|
|
|
|
#[AsTwigFilter('strip_media_path')]
|
|
public function stripMediaPath(string $path)
|
|
{
|
|
return str_replace(
|
|
$this->mediaFiles->getBasePath() . DIRECTORY_SEPARATOR,
|
|
'',
|
|
$path
|
|
);
|
|
}
|
|
}
|