You can extend twig
with any PHP logic you want, e.g.
use Slim\Views\Twig;
use Slim\Views\TwigExtension;
$container['view'] = function ($container){
$twig = new Twig(__DIR__.'/../resources/views');
$twig->addFilter(new Twig_SimpleFilter('obfuscate', function($value, $char = '*', $visible = 4) {
if ($visible % 2 != 0) $visible++;
if (strlen($value) <= $visible) return str_repeat($char, strlen($value));
return substr($value, 0, floor($visible) / 2).str_repeat($char, strlen($value) - $visible).substr($value, -1 * (floor($visible) / 2));
}),
return $twig;
};
{{ 'john.doe@gmail.com' | obfuscate }} {# output: jo**************om #}
{{ 'john.doe@gmail.com' | obfuscate('-', 10) }} {# output: john.--------l.com #}
{{ '123456' | obfuscate }} {# output: 12**56 #}
{{ '123' | obfuscate }} {# output: *** #}
{{ '1' | obfuscate }} {# output: * #}
{{ '+32497123456' | obfuscate }} {# output: +3********56 #}