deblan.io-murph/src/Twig/Extension/TypoExtension.php

29 lines
579 B
PHP
Raw Normal View History

2023-01-05 19:53:34 +01:00
<?php
namespace App\Twig\Extension;
use Twig\Extension\AbstractExtension;
use Twig\TwigFilter;
use Twig\TwigFunction;
class TypoExtension extends AbstractExtension
{
public function getFilters(): array
{
return [
new TwigFilter('nbsp', [$this, 'nbsp']),
];
}
public function nbsp(string $value)
{
return preg_replace_callback(
'/(.+)(\.+|,+|;+|:+|!+|\?+)/isU',
function($d) {
return sprintf('%s&nbsp;%s', trim($d[1]), $d[2]);
},
$value
);
}
}