*/
class LazyLoadExtension extends AbstractExtension
{
public function getFilters()
{
return [
new TwigFilter('lazy_load', [$this, 'lazyLoad'], ['is_safe' => ['html']]),
];
}
public function lazyLoad($text)
{
$text = preg_replace_callback(
'``isU',
function ($data) {
$lazy = sprintf('', $data[1], $data[2]);
$noScript = sprintf('', $data[0]);
return $lazy.$noScript;
},
$text
);
return $text;
}
}