<?php
declare(strict_types=1);
/**
* @author Mehrez Labidi
*/
namespace App\Twig;
use App\Services\Encryptage\AesEncrytageStrategy;
use Twig\Extension\AbstractExtension;
use Twig\TwigFilter;
use Twig\TwigFunction;
class DecryptageExtension extends AbstractExtension
{
/**
* @var \App\Services\Encryptage\AesEncrytageStrategy
*/
private $aes;
public function __construct(AesEncrytageStrategy $aes)
{
$this->aes = $aes;
}
/**
* @return \Twig\TwigFilter[]
*/
public function getFilters(): array
{
return [
new TwigFilter('decrypt', [$this, 'decrypt']),
new TwigFilter('encrypt', [$this, 'encrypt']),
];
}
/**
* @return \Twig\TwigFunction[]
*/
public function getFunctions(): array
{
return [
new TwigFunction('decrypt', [$this, 'decrypt']),
new TwigFunction('encrypt', [$this, 'encrypt']),
];
}
/**
* @param $value
*/
public function decrypt($value): string
{
return ( $value ) ?$this->aes->decryptage($value):'';
}
/**
* @param $value
*/
public function encrypt($value): string
{
return ( $value ) ?$this->aes->encryptage($value):'';
}
}