Add slug filter (follow-up to PR #3386)

This commit is contained in:
Émile Perron
2021-01-28 22:20:26 -05:00
committed by Fabien Potencier
parent 1a0162a612
commit 0fd67941be
6 changed files with 74 additions and 1 deletions
+16
View File
@@ -11,16 +11,27 @@
namespace Twig\Extra\String;
use Symfony\Component\String\AbstractUnicodeString;
use Symfony\Component\String\Slugger\SluggerInterface;
use Symfony\Component\String\Slugger\AsciiSlugger;
use Symfony\Component\String\UnicodeString;
use Twig\Extension\AbstractExtension;
use Twig\TwigFilter;
final class StringExtension extends AbstractExtension
{
private $slugger;
public function __construct(SluggerInterface $slugger = null)
{
$this->slugger = $slugger ?: new AsciiSlugger();
}
public function getFilters()
{
return [
new TwigFilter('u', [$this, 'createUnicodeString']),
new TwigFilter('slug', [$this, 'createSlug']),
];
}
@@ -28,4 +39,9 @@ final class StringExtension extends AbstractExtension
{
return new UnicodeString($text ?? '');
}
public function createSlug(string $string, string $separator = '-', ?string $locale = null): AbstractUnicodeString
{
return $this->slugger->slug($string, $separator, $locale);
}
}