Класс Stringable
Класс Stringable реализует объектно-ориентированный подход к работе со строками в Laravel. Он предоставляет множество методов для манипуляции строками, таких как преобразование регистра, обрезка, замена подстрок и другие. Объект Stringable создаётся с помощью вспомогательной функции str или метода of класса Str. Все методы класса возвращают новый объект Stringable, что позволяет строить цепочки вызовов.
Синтаксис
<?php
$string = str('hello world');
// или
$string = Str::of('hello world');
?>
Пример
Давайте преобразуем строку в верхний регистр и заменим пробелы на дефисы:
<?php
use Illuminate\Support\Str;
$string = Str::of('hello world')->upper()->replace(' ', '-');
echo $string;
?>
Результат выполнения кода:
"HELLO-WORLD"
Пример
Давайте обрежем строку до 10 символов и добавим многоточие в конце:
<?php
use Illuminate\Support\Str;
$string = Str::of('This is a very long string')->limit(10);
echo $string;
?>
Результат выполнения кода:
"This is a ..."
Пример
Давайте проверим, содержит ли строка подстроку, и преобразуем её в заглавный регистр:
<?php
use Illuminate\Support\Str;
$string = Str::of('hello world');
if ($string->contains('world')) {
$res = $string->title();
echo $res;
}
?>
Результат выполнения кода:
"Hello World"
Пример
Давайте извлечём подстроку между двумя маркерами:
<?php
use Illuminate\Support\Str;
$string = Str::of('The quick brown fox')->between('quick', 'fox');
echo $string;
?>
Результат выполнения кода:
" brown "
Пример
Давайте преобразуем строку в CamelCase и обратно в snake_case:
<?php
use Illuminate\Support\Str;
$string = Str::of('user_profile_data')->camel();
echo $string . "\n";
$res = $string->snake();
echo $res;
?>
Результат выполнения кода:
"userProfileData"
"user_profile_data"