v1.0.0.0
StocketBase
- <?php
-
- declare(strict_types=1);
-
- final class Slugger
- {
- private const TRANSLITERATION_MAP = [
- 'ą' => 'a', 'ć' => 'c', 'ę' => 'e', 'ł' => 'l', 'ń' => 'n',
- 'ó' => 'o', 'ś' => 's', 'ź' => 'z', 'ż' => 'z',
- 'Ą' => 'a', 'Ć' => 'c', 'Ę' => 'e', 'Ł' => 'l', 'Ń' => 'n',
- 'Ó' => 'o', 'Ś' => 's', 'Ź' => 'z', 'Ż' => 'z',
- ];
-
- public static function make(string $title): string
- {
- $transliterated = strtr($title, self::TRANSLITERATION_MAP);
- $lowercased = strtolower($transliterated);
- $slug = preg_replace('/[^a-z0-9]+/', '-', $lowercased);
-
- return trim($slug, '-');
- }
- }
-