Использовать очень просто и удобно, все есть в документации. Можно не указывать исходный формат, разберется сам, можно указать и будет работать быстрее. Кроме стандартных форматов, автоматически обрабатывает сложные нестандартные форматы строк:
echo KebabCaseFormatter::run('__some-weirdString case---'); // Output: "some-weird-string-case"
Также реализовано несколько процессоров другого рода. Процессоры умеют комбинироваться. Например, можно очистить строку от знаков пунктуации, перевести в транслит, потом в шашлычный регистр - получим URL slug из предложения на русском языке.
$processor = new Multiprocessor([
new PunctuationStripper(),
new KebabCaseFormatter(),
new RuEnTranslator(),
]);
echo $processor->process('Лорем ипсум долор сит амет'); // Output: "lorem-ipsum-dolor-sit-amet"
echo $processor->process('Привет, Мир!'); // Output: "privet-mir"
Кому нравится паттерн декоратор, процессоры умеют декорироваться:
$processor =
(new RuEnTranslator())->decorate(
(new KebabCaseFormatter())->decorate(
(new PunctuationStripper())
)
);
echo $processor->process('Лорем ипсум долор сит амет'); // Output: "lorem-ipsum-dolor-sit-amet"
echo $processor->process('Привет, Мир!'); // Output: "privet-mir"
Предложения, замечания, баг-репорты, пул-реквесты и звездочки приветствуются.