В Laravel есть фасад Str, и он вроде бы «для удобства». Но если ты хоть раз руками писал свой велосипед для перевода строки в snake_case, то ты знаешь, насколько эти хелперы экономят мозг и время. Вроде фигня, а на проде такие мелочи иногда выручают сильнее, чем новый бекендщик в команде.
Примеры, которые реально юзаются
Str::length
Посчитать длину строки. Скучно, но лучше, чем mb_strlen самому лепить.
use Illuminate\Support\Str;
$length = Str::length('Laravel is awesome!');
// 21 Str::contains
Проверить, есть ли в строке кусок текста. Нормально работает с массивом подстрок, что удобно, если надо ловить несколько вариантов.
$contains = Str::contains('Laravel is awesome!', 'awesome');
// true Str::camel
Из snake_case в camelCase. Сам бы ты это делал через preg_replace, и выглядело бы это больно.
$camel = Str::camel('laravel_is_awesome');
// laravelIsAwesome Str::kebab
Сделать kebab-case из всего подряд. Часто нужно для URL или CSS-классов.
$kebab = Str::kebab('Laravel Is Awesome');
// laravel-is-awesome Str::snake
Тот самый snake_case. Нужен, когда ты лепишь API и хочешь, чтобы всё выглядело консистентно.
$snake = Str::snake('LaravelIsAwesome');
// laravel_is_awesome Str::studly
Когда из говна надо слепить «красивый» класс.
$studly = Str::studly('laravel_is_awesome');
// LaravelIsAwesome Str::random
Генерация случайных строк. Хорошо для токенов, плохо для паролей, потому что юзеры потом будут плакать.
$random = Str::random(10);
// 10 случайных символов Str::replaceFirst
Меняешь только первое вхождение. Когда тебе не надо резать всё подряд.
$replaced = Str::replaceFirst('Laravel', 'Lumen', 'Laravel is awesome!');
// Lumen is awesome! Str::replaceLast
Аналогично, только последнее вхождение.
$replaced = Str::replaceLast('awesome', 'great', 'Laravel is awesome!');
// Laravel is great! Str::slug
Превратить фразу в нормальный URL. Без slug твои ссылки будут выглядеть как после войны.
$slug = Str::slug('Laravel is awesome!', '-');
// laravel-is-awesome Итог
Хелперы — это мелочь, но именно такие мелочи отделяют проект, в котором код читается, от проекта, где каждый второй метод выглядит как копипаста с Stack Overflow.
Str::* экономят кучу времени и убирают самопальный велосипедный код. И да, если ты ими не пользуешься — скорее всего, твой проект уже завален функциями типа my_string_to_slug().
0 комментариев