📘 Str — Вспомогательный класс для работы со строками
Класс Str содержит часто используемые методы для обработки строк.
🔹 Str::after(string $subject, string $search): string
Возвращает часть строки после первого вхождения подстроки.
Str::after('user@example.com', '@'); // 'example.com'🔹 Str::before(string $subject, string $search): string
Возвращает часть строки до первого вхождения подстроки.
Str::before('user@example.com', '@'); // 'user'🔹 Str::camel(string $string): string
Преобразует строку в camelCase.
Str::camel('page_blocks'); // 'pageBlocks'🔹 Str::contains(string $haystack, string $needle): bool
Проверяет, содержит ли строка указанную подстроку.
Str::contains('framework', 'work'); // true🔹 Str::endsWith(string $haystack, string $needle): bool
Проверяет, заканчивается ли строка на заданную подстроку.
Str::endsWith('index.php', '.php'); // true🔹 Str::explode(string $delimiter, string $string, ?int $limit = null, $padValue = null): array
Разбивает строку на массив по разделителю. Если указан лимит, возвращает массив заданной длины и дополняет недостающие элементы значением $padValue.
Str::explode(',', 'one,two');
// ['one', 'two']
Str::explode(',', 'one,two', 4, '');
// ['one', 'two', '', '']🔹 Str::finish(string $value, string $cap): string
Добавляет окончание к строке, если оно ещё не добавлено.
Str::finish('path/to/dir', '/'); // 'path/to/dir/'🔹 Str::isAscii(string $string): bool
Проверяет, состоит ли строка только из ASCII-символов.
Str::isAscii('Hello'); // true
Str::isAscii('Привет'); // false🔹 Str::isJson(string $string): bool
Проверяет, является ли строка валидным JSON.
Str::isJson('{"a":1}'); // true
Str::isJson('{a:1}'); // false🔹 Str::isStringable($value): bool
Проверяет, можно ли значение привести к строке (string, int, float, bool или объект с __toString()).
Str::isStringable(123); // true
Str::isStringable(new DateTime()); // true
Str::isStringable([]); // false🔹 Str::kebab(string $string): string
Преобразует строку в kebab-case.
Str::kebab('PageBlocks Helper'); // 'page-blocks-helper'🔹 Str::length(string $string): int
Возвращает длину строки с поддержкой UTF-8.
Str::length('Привет'); // 6🔹 Str::limit(string $string, int $limit = 100, string $end = '...'): string
Обрезает строку до указанной длины, добавляя окончание (по умолчанию ...).
Str::limit('This is a long sentence.', 10); // 'This is a ...'🔹 Str::mask(string $string, string $char = '*', int $index = 0, ?int $length = null): string
Маскирует часть строки другим символом.
Str::mask('secret@example.com', '*', 0, 6); // '******@example.com'🔹 Str::match(string $pattern, string $subject): ?string
Возвращает первое совпадение с регулярным выражением.
Str::match('/\d+/', 'Order #12345'); // '12345'🔹 Str::password(int $length = 16): string
Генерирует случайный безопасный пароль.
Str::password(12); // 't8K!sB0@qZ4#'🔹 Str::position(string $haystack, string $needle): ?int
Возвращает позицию подстроки или null, если не найдена.
Str::position('example@test.com', '@'); // 7🔹 Str::random(int $length = 16): string
Генерирует случайную строку указанной длины.
Str::random(8); // 'a8Gf3HkL'🔹 Str::remove(string $string, string $search): string
Удаляет все вхождения подстроки.
Str::remove('this is a test', 'is'); // 'th a test'🔹 Str::replace(string $search, string $replace, string $subject): string
Заменяет вхождения подстроки.
Str::replace('world', 'PageBlocks', 'Hello world'); // 'Hello PageBlocks'🔹 Str::reverse(string $string): string
Разворачивает строку (в т.ч. UTF-8).
Str::reverse('Привет'); // 'тевирП'🔹 Str::slug(string $string, string $separator = '-'): string
Преобразует строку в "человеко-понятный" URL-формат (slug).
Str::slug('Пример строки для URL!'); // 'primer-stroki-dlya-url'
Str::slug('Page Blocks Helper', '_'); // 'page_blocks_helper'🔹 Str::snake(string $string): string
Преобразует строку в snake_case.
Str::snake('PageBlocks'); // 'page_blocks'🔹 Str::start(string $value, string $prefix): string
Добавляет начало к строке, если его ещё нет.
Str::start('example.com', 'https://'); // 'https://example.com'🔹 Str::startsWith(string $haystack, string $needle): bool
Проверяет, начинается ли строка с заданной подстроки.
Str::startsWith('hello world', 'hello'); // true🔹 Str::ulid(): string
Генерирует уникальный ULID (упорядоченный ID).
Str::ulid(); // '01HXY56Y2B3A9Z2Q7GJ6RFDQXY'🔹 Str::uuid(): string
Генерирует UUID v4.
Str::uuid(); // 'b1b0c210-4cda-4d65-9e3b-0f63ff8c0a58'🔹 Str::wordCount(string $string): int
Подсчитывает количество слов в строке.
Str::wordCount('Это простой текст'); // 3🔹 Str::words(string $string, int $words = 100, string $end = '...'): string
Обрезает строку до указанного количества слов.
Str::words('Это пример строки для обрезки', 3); // 'Это пример строки...'