Skip to content
Icon

ПРЕДУПРЕЖДЕНИЕ Вы просматриваете документацию к старой версии Laravel. Рассмотрите возможность обновления Вашего проекта до Laravel 9.x.

Помощники

Введение

Laravel включает в себя множество глобальных «вспомогательных» функций PHP. Многие из этих функций используются самим фреймворком; однако вы можете использовать их в своих собственных приложениях, если сочтете их удобными.

Доступные методы

Массивы и объекты

Пути

Строки

Свободные строки

URL-адреса

Дополнительные

Список методов

Массивы и объекты

Arr::accessible()

Метод Arr::accessible определяет, доступно ли данное значение массиву:

use Illuminate\Support\Arr;
use Illuminate\Support\Collection;
 
$isAccessible = Arr::accessible(['a' => 1, 'b' => 2]);
 
// true
 
$isAccessible = Arr::accessible(new Collection);
 
// true
 
$isAccessible = Arr::accessible('abc');
 
// false
 
$isAccessible = Arr::accessible(new stdClass);
 
// false

Arr::add()

Метод Arr::add добавляет заданную пару ключ/значение в массив, если данный ключ еще не существует в массиве или установлен в null:

use Illuminate\Support\Arr;
 
$array = Arr::add(['name' => 'Desk'], 'price', 100);
 
// ['name' => 'Desk', 'price' => 100]
 
$array = Arr::add(['name' => 'Desk', 'price' => null], 'price', 100);
 
// ['name' => 'Desk', 'price' => 100]

Arr::collapse()

Метод Arr::collapse сворачивает массив массивов в один массив:

use Illuminate\Support\Arr;
 
$array = Arr::collapse([[1, 2, 3], [4, 5, 6], [7, 8, 9]]);
 
// [1, 2, 3, 4, 5, 6, 7, 8, 9]

Arr::crossJoin()

Метод Arr::crossJoin объединяет указанные массивы, возвращая Декартово произведение со всеми возможными перестановками:

use Illuminate\Support\Arr;
 
$matrix = Arr::crossJoin([1, 2], ['a', 'b']);
 
/*
[
[1, 'a'],
[1, 'b'],
[2, 'a'],
[2, 'b'],
]
*/
 
$matrix = Arr::crossJoin([1, 2], ['a', 'b'], ['I', 'II']);
 
/*
[
[1, 'a', 'I'],
[1, 'a', 'II'],
[1, 'b', 'I'],
[1, 'b', 'II'],
[2, 'a', 'I'],
[2, 'a', 'II'],
[2, 'b', 'I'],
[2, 'b', 'II'],
]
*/

Arr::divide()

Метод Arr::divide возвращает два массива: один содержит ключи, а другой - значения данного массива:

use Illuminate\Support\Arr;
 
[$keys, $values] = Arr::divide(['name' => 'Desk']);
 
// $keys: ['name']
 
// $values: ['Desk']

Arr::dot()

Метод Arr::dot объединяет многомерный массив в одноуровневый массив, который использует «точечную» нотацию для обозначения глубины:

use Illuminate\Support\Arr;
 
$array = ['products' => ['desk' => ['price' => 100]]];
 
$flattened = Arr::dot($array);
 
// ['products.desk.price' => 100]

Arr::except()

Метод Arr::except удаляет заданные пары ключ/значение из массива:

use Illuminate\Support\Arr;
 
$array = ['name' => 'Desk', 'price' => 100];
 
$filtered = Arr::except($array, ['price']);
 
// ['name' => 'Desk']

Arr::exists()

Метод Arr::exists проверяет, существует ли данный ключ в предоставленном массиве:

use Illuminate\Support\Arr;
 
$array = ['name' => 'John Doe', 'age' => 17];
 
$exists = Arr::exists($array, 'name');
 
// true
 
$exists = Arr::exists($array, 'salary');
 
// false

Arr::first()

Метод Arr::first возвращает первый элемент массива, прошедшего заданный тест истинности:

use Illuminate\Support\Arr;
 
$array = [100, 200, 300];
 
$first = Arr::first($array, function ($value, $key) {
return $value >= 150;
});
 
// 200

Значение по умолчанию также может быть передано в метод в качестве третьего параметра. Это значение будет возвращено, если ни одно значение не прошло проверку истинности:

use Illuminate\Support\Arr;
 
$first = Arr::first($array, $callback, $default);

Arr::flatten()

Метод Arr::flatten объединяет многомерный массив в одноуровневый массив:

use Illuminate\Support\Arr;
 
$array = ['name' => 'Joe', 'languages' => ['PHP', 'Ruby']];
 
$flattened = Arr::flatten($array);
 
// ['Joe', 'PHP', 'Ruby']

Arr::forget()

Метод Arr::forget удаляет заданную пару ключ/значение из глубоко вложенного массива, используя «точечную» нотацию:

use Illuminate\Support\Arr;
 
$array = ['products' => ['desk' => ['price' => 100]]];
 
Arr::forget($array, 'products.desk');
 
// ['products' => []]

Arr::get()

Метод Arr::get извлекает значение из глубоко вложенного массива, используя «точечную» нотацию:

use Illuminate\Support\Arr;
 
$array = ['products' => ['desk' => ['price' => 100]]];
 
$price = Arr::get($array, 'products.desk.price');
 
// 100

Метод Arr::get также принимает значение по умолчанию, которое будет возвращено, если указанный ключ отсутствует в массиве:

use Illuminate\Support\Arr;
 
$discount = Arr::get($array, 'products.desk.discount', 0);
 
// 0

Arr::has()

Метод Arr::has проверяет, существует ли данный элемент или элементы в массиве, используя «точечную» нотацию:

use Illuminate\Support\Arr;
 
$array = ['product' => ['name' => 'Desk', 'price' => 100]];
 
$contains = Arr::has($array, 'product.name');
 
// true
 
$contains = Arr::has($array, ['product.price', 'product.discount']);
 
// false

Arr::hasAny()

Метод Arr::hasAny проверяет, существует ли какой-либо элемент в данном наборе в массиве, используя «точечную» нотацию:

use Illuminate\Support\Arr;
 
$array = ['product' => ['name' => 'Desk', 'price' => 100]];
 
$contains = Arr::hasAny($array, 'product.name');
 
// true
 
$contains = Arr::hasAny($array, ['product.name', 'product.discount']);
 
// true
 
$contains = Arr::hasAny($array, ['category', 'product.discount']);
 
// false

Arr::isAssoc()

Arr::isAssoc возвращает true, если данный массив является ассоциативным. Массив считается "ассоциативным", если в нем нет последовательных цифровых ключей, начинающихся с нуля:

use Illuminate\Support\Arr;
 
$isAssoc = Arr::isAssoc(['product' => ['name' => 'Desk', 'price' => 100]]);
 
// true
 
$isAssoc = Arr::isAssoc([1, 2, 3]);
 
// false

Arr::last()

Метод Arr::last возвращает последний элемент массива, прошедшего заданный тест истинности:

use Illuminate\Support\Arr;
 
$array = [100, 200, 300, 110];
 
$last = Arr::last($array, function ($value, $key) {
return $value >= 150;
});
 
// 300

В качестве третьего аргумента метода может быть передано значение по умолчанию. Это значение будет возвращено, если ни одно значение не прошло проверку истинности:

use Illuminate\Support\Arr;
 
$last = Arr::last($array, $callback, $default);

Arr::only()

Метод Arr::only возвращает только указанные пары ключ / значение из данного массива:

use Illuminate\Support\Arr;
 
$array = ['name' => 'Desk', 'price' => 100, 'orders' => 10];
 
$slice = Arr::only($array, ['name', 'price']);
 
// ['name' => 'Desk', 'price' => 100]

Arr::pluck()

Метод Arr::pluck извлекает все значения для данного ключа из массива:

use Illuminate\Support\Arr;
 
$array = [
['developer' => ['id' => 1, 'name' => 'Taylor']],
['developer' => ['id' => 2, 'name' => 'Abigail']],
];
 
$names = Arr::pluck($array, 'developer.name');
 
// ['Taylor', 'Abigail']

Вы также можете указать, как вы хотите, чтобы результирующий список был оформлен в виде ключа:

use Illuminate\Support\Arr;
 
$names = Arr::pluck($array, 'developer.name', 'developer.id');
 
// [1 => 'Taylor', 2 => 'Abigail']

Arr::prepend()

Метод Arr::prepend помещает элемент в начало массива:

use Illuminate\Support\Arr;
 
$array = ['one', 'two', 'three', 'four'];
 
$array = Arr::prepend($array, 'zero');
 
// ['zero', 'one', 'two', 'three', 'four']

При необходимости вы можете указать ключ, который следует использовать для значения:

use Illuminate\Support\Arr;
 
$array = ['price' => 100];
 
$array = Arr::prepend($array, 'Desk', 'name');
 
// ['name' => 'Desk', 'price' => 100]

Arr::pull()

Метод Arr::pull возвращает и удаляет пару ключ / значение из массива:

use Illuminate\Support\Arr;
 
$array = ['name' => 'Desk', 'price' => 100];
 
$name = Arr::pull($array, 'name');
 
// $name: Desk
 
// $array: ['price' => 100]

В качестве третьего аргумента метода может быть передано значение по умолчанию. Это значение будет возвращено, если ключ не существует:

use Illuminate\Support\Arr;
 
$value = Arr::pull($array, $key, $default);

Arr::query()

Метод Arr::query преобразует массив в строку запроса:

use Illuminate\Support\Arr;
 
$array = [
'name' => 'Taylor',
'order' => [
'column' => 'created_at',
'direction' => 'desc'
]
];
 
Arr::query($array);
 
// name=Taylor&order[column]=created_at&order[direction]=desc

Arr::random()

Метод Arr::random возвращает случайное значение из массива:

use Illuminate\Support\Arr;
 
$array = [1, 2, 3, 4, 5];
 
$random = Arr::random($array);
 
// 4 - (retrieved randomly)

Вы также можете указать количество возвращаемых элементов в качестве необязательного второго аргумента. Обратите внимание, что предоставление этого аргумента вернет массив, даже если требуется только один элемент:

use Illuminate\Support\Arr;
 
$items = Arr::random($array, 2);
 
// [2, 5] - (retrieved randomly)

Arr::set()

Метод Arr::set устанавливает значение внутри глубоко вложенного массива, используя «точечную» нотацию:

use Illuminate\Support\Arr;
 
$array = ['products' => ['desk' => ['price' => 100]]];
 
Arr::set($array, 'products.desk.price', 200);
 
// ['products' => ['desk' => ['price' => 200]]]

Arr::shuffle()

Метод Arr::shuffle случайным образом перемешивает элементы в массиве:

use Illuminate\Support\Arr;
 
$array = Arr::shuffle([1, 2, 3, 4, 5]);
 
// [3, 2, 5, 1, 4] - (generated randomly)

Arr::sort()

Метод Arr::sort сортирует массив по его значениям:

use Illuminate\Support\Arr;
 
$array = ['Desk', 'Table', 'Chair'];
 
$sorted = Arr::sort($array);
 
// ['Chair', 'Desk', 'Table']

Вы также можете отсортировать массив по результатам данного замыкания:

use Illuminate\Support\Arr;
 
$array = [
['name' => 'Desk'],
['name' => 'Table'],
['name' => 'Chair'],
];
 
$sorted = array_values(Arr::sort($array, function ($value) {
return $value['name'];
}));
 
/*
[
['name' => 'Chair'],
['name' => 'Desk'],
['name' => 'Table'],
]
*/

Arr::sortRecursive()

Метод Arr::sortRecursive рекурсивно сортирует массив, используя функцию sort для подмассивов с числовым индексом и функцию ksort для ассоциативных подмассивов:

use Illuminate\Support\Arr;
 
$array = [
['Roman', 'Taylor', 'Li'],
['PHP', 'Ruby', 'JavaScript'],
['one' => 1, 'two' => 2, 'three' => 3],
];
 
$sorted = Arr::sortRecursive($array);
 
/*
[
['JavaScript', 'PHP', 'Ruby'],
['one' => 1, 'three' => 3, 'two' => 2],
['Li', 'Roman', 'Taylor'],
]
*/

Arr::toCssClasses()

Arr::toCssClasses условно компилирует строку класса CSS. Метод принимает массив классов, где ключ массива содержит класс или классы, которые вы хотите добавить, а значение представляет собой логическое выражение. Если элемент массива имеет числовой ключ, он всегда будет включен в список отображаемых классов:

use Illuminate\Support\Arr;
 
$isActive = false;
$hasError = true;
 
$array = ['p-4', 'font-bold' => $isActive, 'bg-red' => $hasError];
 
$classes = Arr::toCssClasses($array);
 
/*
'p-4 bg-red'
*/

Этот метод поддерживает функциональность Laravel, позволяя объединять классы с набором атрибутов компонента Blade, а также @class директива Blade.

Arr::undot()

Метод Arr::undot расширяет одномерный массив, использующий "точечную" нотацию, в многомерный массив:

use Illuminate\Support\Arr;
 
$array = [
'user.name' => 'Kevin Malone',
'user.occupation' => 'Accountant',
];
 
$array = Arr::undot($array);
 
// ['user' => ['name' => 'Kevin Malone', 'occupation' => 'Accountant']]

Arr::where()

Метод Arr::where фильтрует массив, используя заданное замыкание:

use Illuminate\Support\Arr;
 
$array = [100, '200', 300, '400', 500];
 
$filtered = Arr::where($array, function ($value, $key) {
return is_string($value);
});
 
// [1 => '200', 3 => '400']

Arr::whereNotNull()

Метод Arr::whereNotNull удаляет все значения null из заданного массива:

use Illuminate\Support\Arr;
 
$array = [0, null];
 
$filtered = Arr::whereNotNull($array);
 
// [0 => 0]

Arr::wrap()

Метод Arr::wrap помещает заданное значение в массив. Если данное значение уже является массивом, оно будет возвращено без изменений:

use Illuminate\Support\Arr;
 
$string = 'Laravel';
 
$array = Arr::wrap($string);
 
// ['Laravel']

Если заданное значение равно null, будет возвращен пустой массив:

use Illuminate\Support\Arr;
 
$array = Arr::wrap(null);
 
// []

data_fill()

Функция data_fill устанавливает отсутствующее значение во вложенном массиве или объекте, используя «точечную» нотацию:

$data = ['products' => ['desk' => ['price' => 100]]];
 
data_fill($data, 'products.desk.price', 200);
 
// ['products' => ['desk' => ['price' => 100]]]
 
data_fill($data, 'products.desk.discount', 10);
 
// ['products' => ['desk' => ['price' => 100, 'discount' => 10]]]

Эта функция также принимает звездочки в качестве подстановочных знаков и соответствующим образом заполняет цель:

$data = [
'products' => [
['name' => 'Desk 1', 'price' => 100],
['name' => 'Desk 2'],
],
];
 
data_fill($data, 'products.*.price', 200);
 
/*
[
'products' => [
['name' => 'Desk 1', 'price' => 100],
['name' => 'Desk 2', 'price' => 200],
],
]
*/

data_get()

Функция data_get извлекает значение из вложенного массива или объекта, используя «точечную» нотацию:

$data = ['products' => ['desk' => ['price' => 100]]];
 
$price = data_get($data, 'products.desk.price');
 
// 100

Функция data_get также принимает значение по умолчанию, которое будет возвращено, если указанный ключ не найден:

$discount = data_get($data, 'products.desk.discount', 0);
 
// 0

Функция также принимает подстановочные знаки с использованием звездочек, которые могут указывать на любой ключ массива или объекта:

$data = [
'product-one' => ['name' => 'Desk 1', 'price' => 100],
'product-two' => ['name' => 'Desk 2', 'price' => 150],
];
 
data_get($data, '*.name');
 
// ['Desk 1', 'Desk 2'];

data_set()

Функция data_set устанавливает значение внутри вложенного массива или объекта, используя «точечную» нотацию:

$data = ['products' => ['desk' => ['price' => 100]]];
 
data_set($data, 'products.desk.price', 200);
 
// ['products' => ['desk' => ['price' => 200]]]

Эта функция также принимает подстановочные знаки с использованием звездочек и соответственно устанавливает значения для цели:

$data = [
'products' => [
['name' => 'Desk 1', 'price' => 100],
['name' => 'Desk 2', 'price' => 150],
],
];
 
data_set($data, 'products.*.price', 200);
 
/*
[
'products' => [
['name' => 'Desk 1', 'price' => 200],
['name' => 'Desk 2', 'price' => 200],
],
]
*/

По умолчанию все существующие значения перезаписываются. Если вы хотите установить значение только в том случае, если оно не существует, вы можете передать false в качестве четвертого аргумента функции:

$data = ['products' => ['desk' => ['price' => 100]]];
 
data_set($data, 'products.desk.price', 200, $overwrite = false);
 
// ['products' => ['desk' => ['price' => 100]]]

head()

Функция head возвращает первый элемент в данном массиве:

$array = [100, 200, 300];
 
$first = head($array);
 
// 100

last()

Функция last возвращает последний элемент в данном массиве:

$array = [100, 200, 300];
 
$last = last($array);
 
// 300

Пути

app_path()

Функция app_path возвращает полный путь к каталогу app вашего приложения directory. Вы также можете использовать функцию app_path для генерации полного пути к файлу относительно каталога приложения:

$path = app_path();
 
$path = app_path('Http/Controllers/Controller.php');

base_path()

Функция base_path возвращает полный путь к каталогу root вашего приложения. Вы также можете использовать функцию base_path для генерации полного пути к заданному файлу относительно корневого каталога проекта:

$path = base_path();
 
$path = base_path('vendor/bin');

config_path()

Функция config_path возвращает полный путь к каталогу config вашего приложения. Вы также можете использовать функцию config_path для генерации полного пути к заданному файлу в каталоге конфигурации приложения:

$path = config_path();
 
$path = config_path('app.php');

database_path()

Функция database_path возвращает полный путь к каталогу database вашего приложения. Вы также можете использовать функцию database_path для генерации полного пути к заданному файлу в каталоге базы данных:

$path = database_path();
 
$path = database_path('factories/UserFactory.php');

mix()

The mix function returns the path to a versioned Mix file:

$path = mix('css/app.css');

public_path()

Функция public_path возвращает полный путь к каталогу public вашего приложения. Вы также можете использовать функцию public_path для генерации полного пути к заданному файлу в общедоступном каталоге:

$path = public_path();
 
$path = public_path('css/app.css');

resource_path()

Функция resource_path возвращает полный путь к каталогу resources вашего приложения. Вы также можете использовать функцию resource_path для генерации полного пути к заданному файлу в каталоге ресурсов:

$path = resource_path();
 
$path = resource_path('sass/app.scss');

storage_path()

Функция storage_path возвращает полный путь к каталогу storage вашего приложения. Вы также можете использовать функцию storage_path для генерации полного пути к заданному файлу в каталоге хранилища:

$path = storage_path();
 
$path = storage_path('app/file.txt');

Строки

__()

Функция __ переводит заданную строку перевода или ключ перевода, используя ваши файлы локализации:

echo __('Welcome to our application');
 
echo __('messages.welcome');

Если указанная строка перевода или ключ не существует, функция __ вернет заданное значение. Итак, используя приведенный выше пример, функция __ вернет messages.welcome, если этот ключ перевода не существует.

class_basename()

Функция class_basename возвращает имя класса данного класса с удаленным пространством имен класса:

$class = class_basename('Foo\Bar\Baz');
 
// Baz

e()

Функция e запускает функцию PHP htmlspecialchars с параметром double_encode, установленным по умолчанию в значение true:

echo e('<html>foo</html>');
 
// &lt;html&gt;foo&lt;/html&gt;

preg_replace_array()

Функция preg_replace_array последовательно заменяет заданный шаблон в строке, используя массив:

$string = 'The event will take place between :start and :end';
 
$replaced = preg_replace_array('/:[a-z_]+/', ['8:30', '9:00'], $string);
 
// The event will take place between 8:30 and 9:00

Str::after()

Метод Str::after возвращает все, что находится после заданного значения в строке. Вся строка будет возвращена, если значение не существует в строке:

use Illuminate\Support\Str;
 
$slice = Str::after('This is my name', 'This is');
 
// ' my name'

Str::afterLast()

Метод Str::afterLast возвращает все, что находится после последнего появления данного значения в строке. Вся строка будет возвращена, если значение не существует в строке:

use Illuminate\Support\Str;
 
$slice = Str::afterLast('App\Http\Controllers\Controller', '\\');
 
// 'Controller'

Str::ascii()

Метод Str::ascii попытается транслитерировать строку в значение ASCII:

use Illuminate\Support\Str;
 
$slice = Str::ascii('û');
 
// 'u'

Str::before()

Метод Str::before возвращает все, что находится перед заданным значением в строке:

use Illuminate\Support\Str;
 
$slice = Str::before('This is my name', 'my name');
 
// 'This is '

Str::beforeLast()

Метод Str::beforeLast возвращает все, что было до последнего появления данного значения в строке:

use Illuminate\Support\Str;
 
$slice = Str::beforeLast('This is my name', 'is');
 
// 'This '

Str::between()

Метод Str::between возвращает часть строки между двумя значениями:

use Illuminate\Support\Str;
 
$slice = Str::between('This is my name', 'This', 'name');
 
// ' is my '

Str::camel()

Метод Str::camel преобразует данную строку в camelCase:

use Illuminate\Support\Str;
 
$converted = Str::camel('foo_bar');
 
// fooBar

Str::contains()

Метод Str::contains определяет, содержит ли данная строка заданное значение. Этот метод чувствителен к регистру:

use Illuminate\Support\Str;
 
$contains = Str::contains('This is my name', 'my');
 
// true

Вы также можете передать массив значений, чтобы определить, содержит ли данная строка какое-либо из значений в массиве:

use Illuminate\Support\Str;
 
$contains = Str::contains('This is my name', ['my', 'foo']);
 
// true

Str::containsAll()

Метод Str::containsAll определяет, содержит ли данная строка все значения в данном массиве:

use Illuminate\Support\Str;
 
$containsAll = Str::containsAll('This is my name', ['my', 'name']);
 
// true

Str::endsWith()

Метод Str::endsWith определяет, заканчивается ли данная строка заданным значением:

use Illuminate\Support\Str;
 
$result = Str::endsWith('This is my name', 'name');
 
// true

Вы также можете передать массив значений, чтобы определить, заканчивается ли данная строка каким-либо из значений в массиве:

use Illuminate\Support\Str;
 
$result = Str::endsWith('This is my name', ['name', 'foo']);
 
// true
 
$result = Str::endsWith('This is my name', ['this', 'foo']);
 
// false

Str::finish()

Метод Str::finish добавляет один экземпляр данного значения в строку, если она еще не заканчивается этим значением:

use Illuminate\Support\Str;
 
$adjusted = Str::finish('this/string', '/');
 
// this/string/
 
$adjusted = Str::finish('this/string/', '/');
 
// this/string/

Str::headline()

Метод Str::headline преобразует строки, разделенные регистром, дефисами или символами подчеркивания, в строку, разделенную пробелами, где первая буква каждого слова заглавная:

use Illuminate\Support\Str;
 
$headline = Str::headline('steve_jobs');
 
// Steve Jobs
 
$headline = Str::headline('EmailNotificationSent');
 
// Email Notification Sent

Str::is()

Метод Str::is определяет, соответствует ли данная строка заданному шаблону. Звездочки могут использоваться как значения подстановочных знаков:

use Illuminate\Support\Str;
 
$matches = Str::is('foo*', 'foobar');
 
// true
 
$matches = Str::is('baz*', 'foobar');
 
// false

Str::isAscii()

Метод Str::isAscii определяет, является ли данная строка 7-битной ASCII:

use Illuminate\Support\Str;
 
$isAscii = Str::isAscii('Taylor');
 
// true
 
$isAscii = Str::isAscii('ü');
 
// false

Str::isUuid()

Метод Str::isUuid определяет, является ли данная строка допустимым UUID:

use Illuminate\Support\Str;
 
$isUuid = Str::isUuid('a0a2a2d2-0b87-4a18-83f2-2529882be2de');
 
// true
 
$isUuid = Str::isUuid('laravel');
 
// false

Str::kebab()

Метод Str::kebab преобразует заданную строку в kebab-case:

use Illuminate\Support\Str;
 
$converted = Str::kebab('fooBar');
 
// foo-bar

Str::length()

Метод Str::length возвращает длину заданной строки:

use Illuminate\Support\Str;
 
$length = Str::length('Laravel');
 
// 7

Str::limit()

Метод Str::limit обрезает данную строку до указанной длины:

use Illuminate\Support\Str;
 
$truncated = Str::limit('The quick brown fox jumps over the lazy dog', 20);
 
// The quick brown fox...

Вы можете передать третий аргумент методу, чтобы изменить строку, которая будет добавлена в конец усеченной строки:

use Illuminate\Support\Str;
 
$truncated = Str::limit('The quick brown fox jumps over the lazy dog', 20, ' (...)');
 
// The quick brown fox (...)

Str::lower()

Метод Str::lower преобразует данную строку в нижний регистр:

use Illuminate\Support\Str;
 
$converted = Str::lower('LARAVEL');
 
// laravel

Str::markdown()

Метод Str::markdown преобразует GitHub flavored Markdown в HTML:

use Illuminate\Support\Str;
 
$html = Str::markdown('# Laravel');
 
// <h1>Laravel</h1>
 
$html = Str::markdown('# Taylor <b>Otwell</b>', [
'html_input' => 'strip',
]);
 
// <h1>Taylor Otwell</h1>

Str::mask()

Метод Str::mask маскирует часть строки повторяющимся символом и может использоваться для запутывания сегментов строк, таких как адреса электронной почты и номера телефонов:

use Illuminate\Support\Str;
 
$string = Str::mask('taylor@example.com', '*', 3);
 
// tay***************

Если необходимо, вы предоставляете отрицательное число в качестве третьего аргумента метода mask, который даст указание методу начать маскирование на заданном расстоянии от конца строки:

$string = Str::mask('taylor@example.com', '*', -15, 3);
 
// tay***@example.com

Str::orderedUuid()

Метод Str::orderedUuid генерирует UUID "сначала временная метка", который может быть эффективно сохранен в индексированном столбце базы данных. Каждый UUID, созданный с помощью этого метода, будет отсортирован после UUID, ранее созданных с помощью этого метода:

use Illuminate\Support\Str;
 
return (string) Str::orderedUuid();

Str::padBoth()

Метод Str::padBoth оборачивает функцию PHP str_pad, заполняя обе стороны строки другой строкой, пока последняя строка не достигнет желаемой длины:

use Illuminate\Support\Str;
 
$padded = Str::padBoth('James', 10, '_');
 
// '__James___'
 
$padded = Str::padBoth('James', 10);
 
// ' James '

Str::padLeft()

Метод Str::padLeft оборачивает функцию PHP str_pad, заполняя левую часть строки другой строкой, пока последняя строка не достигнет желаемой длины:

use Illuminate\Support\Str;
 
$padded = Str::padLeft('James', 10, '-=');
 
// '-=-=-James'
 
$padded = Str::padLeft('James', 10);
 
// ' James'

Str::padRight()

Метод Str::padRight оборачивает функцию PHP str_pad, заполняя правую часть строки другой строкой, пока последняя строка не достигнет желаемой длины:

use Illuminate\Support\Str;
 
$padded = Str::padRight('James', 10, '-');
 
// 'James-----'
 
$padded = Str::padRight('James', 10);
 
// 'James '

Str::plural()

Метод Str::plural преобразует строку единственного слова во множественное число. В настоящее время эта функция поддерживает только английский язык:

use Illuminate\Support\Str;
 
$plural = Str::plural('car');
 
// cars
 
$plural = Str::plural('child');
 
// children

Вы можете указать целое число в качестве второго аргумента функции для получения единственного или множественного числа строки:

use Illuminate\Support\Str;
 
$plural = Str::plural('child', 2);
 
// children
 
$singular = Str::plural('child', 1);
 
// child

Str::pluralStudly()

Метод Str::pluralStudly преобразует строку единственного числа, отформатированную в регистре заглавных букв, в форму множественного числа. В настоящее время эта функция поддерживает только английский язык:

use Illuminate\Support\Str;
 
$plural = Str::pluralStudly('VerifiedHuman');
 
// VerifiedHumans
 
$plural = Str::pluralStudly('UserFeedback');
 
// UserFeedback

Вы можете указать целое число в качестве второго аргумента функции для получения единственного или множественного числа строки:

use Illuminate\Support\Str;
 
$plural = Str::pluralStudly('VerifiedHuman', 2);
 
// VerifiedHumans
 
$singular = Str::pluralStudly('VerifiedHuman', 1);
 
// VerifiedHuman

Str::random()

Метод Str::random генерирует случайную строку указанной длины. Эта функция использует функцию PHP random_bytes:

use Illuminate\Support\Str;
 
$random = Str::random(40);

Str::remove()

Метод Str::remove удаляет заданное значение или массив значений из строки:

use Illuminate\Support\Str;
 
$string = 'Peter Piper picked a peck of pickled peppers.';
 
$removed = Str::remove('e', $string);
 
// Ptr Pipr pickd a pck of pickld ppprs.

Вы также можете передать false в качестве третьего аргумента методу remove, чтобы игнорировать регистр при удалении строк.

Str::replace()

Метод Str::replace заменяет заданную строку внутри строки:

use Illuminate\Support\Str;
 
$string = 'Laravel 8.x';
 
$replaced = Str::replace('8.x', '9.x', $string);
 
// Laravel 9.x

Str::replaceArray()

Метод Str::replaceArray заменяет заданное значение в строке последовательно, используя массив:

use Illuminate\Support\Str;
 
$string = 'The event will take place between ? and ?';
 
$replaced = Str::replaceArray('?', ['8:30', '9:00'], $string);
 
// The event will take place between 8:30 and 9:00

Str::replaceFirst()

Метод Str::replaceFirst заменяет первое вхождение данного значения в строке:

use Illuminate\Support\Str;
 
$replaced = Str::replaceFirst('the', 'a', 'the quick brown fox jumps over the lazy dog');
 
// a quick brown fox jumps over the lazy dog

Str::replaceLast()

Метод Str::replaceLast заменяет последнее вхождение данного значения в строке:

use Illuminate\Support\Str;
 
$replaced = Str::replaceLast('the', 'a', 'the quick brown fox jumps over the lazy dog');
 
// the quick brown fox jumps over a lazy dog

Str::reverse()

Метод Str::reverse переворачивает заданную строку:

use Illuminate\Support\Str;
 
$reversed = Str::reverse('Hello World');
 
// dlroW olleH

Str::singular()

Метод Str::singular преобразует строку в ее единственную форму. В настоящее время эта функция поддерживает только английский язык:

use Illuminate\Support\Str;
 
$singular = Str::singular('cars');
 
// car
 
$singular = Str::singular('children');
 
// child

Str::slug()

Метод Str::slug генерирует дружественный URL-адрес "slug" из заданной строки:

use Illuminate\Support\Str;
 
$slug = Str::slug('Laravel 5 Framework', '-');
 
// laravel-5-framework

Str::snake()

Метод Str::snake преобразует данную строку в snake_case:

use Illuminate\Support\Str;
 
$converted = Str::snake('fooBar');
 
// foo_bar
 
$converted = Str::snake('fooBar', '-');
 
// foo-bar

Str::start()

Метод Str::start добавляет в строку единственный экземпляр данного значения, если он еще не начинается с этого значения:

use Illuminate\Support\Str;
 
$adjusted = Str::start('this/string', '/');
 
// /this/string
 
$adjusted = Str::start('/this/string', '/');
 
// /this/string

Str::startsWith()

Метод Str::startsWith определяет, начинается ли данная строка с заданного значения:

use Illuminate\Support\Str;
 
$result = Str::startsWith('This is my name', 'This');
 
// true

Если передан массив возможных значений, метод startsWith вернет true, если строка начинается с любого из заданных значений:

$result = Str::startsWith('This is my name', ['This', 'That', 'There']);
 
// true

Str::studly()

Метод Str::studly преобразует заданную строку в StudlyCase:

use Illuminate\Support\Str;
 
$converted = Str::studly('foo_bar');
 
// FooBar

Str::substr()

Метод Str::substr возвращает часть строки, указанную параметрами start и length:

use Illuminate\Support\Str;
 
$converted = Str::substr('The Laravel Framework', 4, 7);
 
// Laravel

Str::substrCount()

Метод Str::substrCount возвращает количество вхождений данного значения в данную строку:

use Illuminate\Support\Str;
 
$count = Str::substrCount('If you like ice cream, you will like snow cones.', 'like');
 
// 2

Str::substrReplace()

Метод Str::substrReplace заменяет текст в части строки, начиная с позиции, указанной третьим аргументом, и заменяет число символов, указанное четвертым аргументом. Передача 0 в четвертый аргумент метода вставит строку в указанную позицию без замены каких-либо существующих символов в строке:

use Illuminate\Support\Str;
 
$result = Str::substrReplace('1300', ':', 2);
// 13:
 
$result = Str::substrReplace('1300', ':', 2, 0);
// 13:00

Str::title()

Метод Str::title преобразует заданную строку в Title Case:

use Illuminate\Support\Str;
 
$converted = Str::title('a nice title uses the correct case');
 
// A Nice Title Uses The Correct Case

Str::toHtmlString()

Метод Str::toHtmlString преобразует экземпляр строки в экземпляр Illuminate\Support\HtmlString, который может отображаться в шаблонах Blade:

use Illuminate\Support\Str;
 
$htmlString = Str::of('Nuno Maduro')->toHtmlString();

Str::ucfirst()

Метод Str::ucfirst возвращает заданную строку с первым символом, написанным с заглавной буквы:

use Illuminate\Support\Str;
 
$string = Str::ucfirst('foo bar');
 
// Foo bar

Str::upper()

Метод Str::upper преобразует данную строку в верхний регистр:

use Illuminate\Support\Str;
 
$string = Str::upper('laravel');
 
// LARAVEL

Str::uuid()

Метод Str::uuid генерирует UUID (версия 4):

use Illuminate\Support\Str;
 
return (string) Str::uuid();

Str::wordCount()

Метод Str::wordCount возвращает количество слов, содержащихся в строке:

use Illuminate\Support\Str;
 
Str::wordCount('Hello, world!'); // 2

Str::words()

Метод Str::words ограничивает количество слов в строке. Дополнительная строка может быть передана этому методу через его третий аргумент, чтобы указать, какая строка должна быть добавлена в конец усеченной строки:

use Illuminate\Support\Str;
 
return Str::words('Perfectly balanced, as all things should be.', 3, ' >>>');
 
// Perfectly balanced, as >>>

trans()

Функция trans переводит заданный ключ перевода, используя ваши файлы локализации:

echo trans('messages.welcome');

Если указанный ключ перевода не существует, функция trans вернет данный ключ. Итак, используя приведенный выше пример, функция trans вернет messages.welcome, если ключ перевода не существует.

trans_choice()

Функция trans_choice переводит заданный ключ перевода с отклонением:

echo trans_choice('messages.notifications', $unreadCount);

Если указанный ключ перевода не существует, функция trans_choice вернет данный ключ. Итак, используя приведенный выше пример, функция trans_choice вернет messages.notifications, если ключ перевода не существует.

Свободные строки

Свободные строки обеспечивают более плавный объектно-ориентированный интерфейс для работы со строковыми значениями, позволяя объединять несколько строковых операций вместе с использованием более удобочитаемого синтаксиса по сравнению с традиционными строковыми операциями.

after

Метод after возвращает все, что находится после заданного значения в строке. Вся строка будет возвращена, если значение не существует в строке:

use Illuminate\Support\Str;
 
$slice = Str::of('This is my name')->after('This is');
 
// ' my name'

afterLast

Метод afterLast возвращает все, что находится после последнего появления данного значения в строке. Вся строка будет возвращена, если значение не существует в строке:

use Illuminate\Support\Str;
 
$slice = Str::of('App\Http\Controllers\Controller')->afterLast('\\');
 
// 'Controller'

append

Метод append добавляет заданные значения в строку:

use Illuminate\Support\Str;
 
$string = Str::of('Taylor')->append(' Otwell');
 
// 'Taylor Otwell'

ascii

Метод ascii попытается транслитерировать строку в значение ASCII:

use Illuminate\Support\Str;
 
$string = Str::of('ü')->ascii();
 
// 'u'

basename

Метод basename вернет завершающий компонент имени данной строки:

use Illuminate\Support\Str;
 
$string = Str::of('/foo/bar/baz')->basename();
 
// 'baz'

При необходимости вы можете предоставить «расширение», которое будет удалено из конечного компонента:

use Illuminate\Support\Str;
 
$string = Str::of('/foo/bar/baz.jpg')->basename('.jpg');
 
// 'baz'

before

Метод before возвращает все, что находится перед заданным значением в строке:

use Illuminate\Support\Str;
 
$slice = Str::of('This is my name')->before('my name');
 
// 'This is '

beforeLast

Метод beforeLast возвращает все, что было до последнего появления данного значения в строке:

use Illuminate\Support\Str;
 
$slice = Str::of('This is my name')->beforeLast('is');
 
// 'This '

between

Метод between возвращает часть строки между двумя значениями:

use Illuminate\Support\Str;
 
$converted = Str::of('This is my name')->between('This', 'name');
 
// ' is my '

camel

Метод camel преобразует данную строку в camelCase:

use Illuminate\Support\Str;
 
$converted = Str::of('foo_bar')->camel();
 
// fooBar

contains

Метод contains определяет, содержит ли данная строка данное значение. Этот метод чувствителен к регистру:

use Illuminate\Support\Str;
 
$contains = Str::of('This is my name')->contains('my');
 
// true

Вы также можете передать массив значений, чтобы определить, содержит ли данная строка какое-либо из значений в массиве:

use Illuminate\Support\Str;
 
$contains = Str::of('This is my name')->contains(['my', 'foo']);
 
// true

containsAll

Метод containsAll определяет, содержит ли данная строка все значения в данном массиве:

use Illuminate\Support\Str;
 
$containsAll = Str::of('This is my name')->containsAll(['my', 'name']);
 
// true

dirname

Метод dirname возвращает часть родительского каталога данной строки:

use Illuminate\Support\Str;
 
$string = Str::of('/foo/bar/baz')->dirname();
 
// '/foo/bar'

При необходимости вы можете указать, сколько уровней каталогов вы хотите вырезать из строки:

use Illuminate\Support\Str;
 
$string = Str::of('/foo/bar/baz')->dirname(2);
 
// '/foo'

endsWith

Метод endsWith определяет, заканчивается ли данная строка заданным значением:

use Illuminate\Support\Str;
 
$result = Str::of('This is my name')->endsWith('name');
 
// true

Вы также можете передать массив значений, чтобы определить, заканчивается ли данная строка каким-либо из значений в массиве:

use Illuminate\Support\Str;
 
$result = Str::of('This is my name')->endsWith(['name', 'foo']);
 
// true
 
$result = Str::of('This is my name')->endsWith(['this', 'foo']);
 
// false

exactly

Метод exactly определяет, является ли данная строка точным совпадением с другой строкой:

use Illuminate\Support\Str;
 
$result = Str::of('Laravel')->exactly('Laravel');
 
// true

explode

Метод explode разбивает строку по заданному разделителю и возвращает коллекцию, содержащую каждый раздел разбитой строки:

use Illuminate\Support\Str;
 
$collection = Str::of('foo bar baz')->explode(' ');
 
// collect(['foo', 'bar', 'baz'])

finish

Метод finish добавляет один экземпляр данного значения к строке, если она еще не заканчивается этим значением:

use Illuminate\Support\Str;
 
$adjusted = Str::of('this/string')->finish('/');
 
// this/string/
 
$adjusted = Str::of('this/string/')->finish('/');
 
// this/string/

is

Метод is определяет, соответствует ли данная строка заданному шаблону. Звездочки могут использоваться как подстановочные знаки:

use Illuminate\Support\Str;
 
$matches = Str::of('foobar')->is('foo*');
 
// true
 
$matches = Str::of('foobar')->is('baz*');
 
// false

isAscii

Метод isAscii определяет, является ли данная строка строкой ASCII:

use Illuminate\Support\Str;
 
$result = Str::of('Taylor')->isAscii();
 
// true
 
$result = Str::of('ü')->isAscii();
 
// false

isEmpty

Метод isEmpty определяет, является ли данная строка пустой:

use Illuminate\Support\Str;
 
$result = Str::of(' ')->trim()->isEmpty();
 
// true
 
$result = Str::of('Laravel')->trim()->isEmpty();
 
// false

isNotEmpty

Метод isNotEmpty определяет, не пуста ли данная строка:

use Illuminate\Support\Str;
 
$result = Str::of(' ')->trim()->isNotEmpty();
 
// false
 
$result = Str::of('Laravel')->trim()->isNotEmpty();
 
// true

isUuid

Метод isUuid определяет, является ли данная строка UUID:

use Illuminate\Support\Str;
 
$result = Str::of('5ace9ab9-e9cf-4ec6-a19d-5881212a452c')->isUuid();
 
// true
 
$result = Str::of('Taylor')->isUuid();
 
// false

kebab

Метод kebab преобразует данную строку в kebab-case:

use Illuminate\Support\Str;
 
$converted = Str::of('fooBar')->kebab();
 
// foo-bar

length

Метод length возвращает длину данной строки:

use Illuminate\Support\Str;
 
$length = Str::of('Laravel')->length();
 
// 7

limit

Метод limit обрезает данную строку до указанной длины:

use Illuminate\Support\Str;
 
$truncated = Str::of('The quick brown fox jumps over the lazy dog')->limit(20);
 
// The quick brown fox...

Вы также можете передать второй аргумент, чтобы изменить строку, которая будет добавлена в конец усеченной строки:

use Illuminate\Support\Str;
 
$truncated = Str::of('The quick brown fox jumps over the lazy dog')->limit(20, ' (...)');
 
// The quick brown fox (...)

lower

Метод lower преобразует данную строку в нижний регистр:

use Illuminate\Support\Str;
 
$result = Str::of('LARAVEL')->lower();
 
// 'laravel'

ltrim

Метод ltrim обрезает левую часть строки:

use Illuminate\Support\Str;
 
$string = Str::of(' Laravel ')->ltrim();
 
// 'Laravel '
 
$string = Str::of('/Laravel/')->ltrim('/');
 
// 'Laravel/'

markdown

Метод markdown конвертирует GitHub flavored Markdown в HTML:

use Illuminate\Support\Str;
 
$html = Str::of('# Laravel')->markdown();
 
// <h1>Laravel</h1>
 
$html = Str::of('# Taylor <b>Otwell</b>')->markdown([
'html_input' => 'strip',
]);
 
// <h1>Taylor Otwell</h1>

mask

Метод mask маскирует часть строки повторяющимся символом и может использоваться для запутывания сегментов строк, таких как адреса электронной почты и номера телефонов:

use Illuminate\Support\Str;
 
$string = Str::of('taylor@example.com')->mask('*', 3);
 
// tay***************

Если необходимо, вы предоставляете отрицательное число в качестве третьего аргумента метода mask, который даст указание методу начать маскирование на заданном расстоянии от конца строки:

$string = Str::of('taylor@example.com')->mask('*', -15, 3);
 
// tay***@example.com

match

Метод match вернет часть строки, которая соответствует заданному шаблону регулярного выражения:

use Illuminate\Support\Str;
 
$result = Str::of('foo bar')->match('/bar/');
 
// 'bar'
 
$result = Str::of('foo bar')->match('/foo (.*)/');
 
// 'bar'

matchAll

Метод matchAll вернет коллекцию, содержащую части строки, соответствующие заданному шаблону регулярного выражения:

use Illuminate\Support\Str;
 
$result = Str::of('bar foo bar')->matchAll('/bar/');
 
// collect(['bar', 'bar'])

Если вы укажете соответствующую группу в выражении, Laravel вернет коллекцию совпадений этой группы:

use Illuminate\Support\Str;
 
$result = Str::of('bar fun bar fly')->matchAll('/f(\w*)/');
 
// collect(['un', 'ly']);

Если совпадений не найдено, будет возвращена пустая коллекция.

padBoth

Метод padBoth оборачивает функцию PHP str_pad, заполняя обе стороны строки другой строкой, пока конечная строка не достигнет желаемой длины:

use Illuminate\Support\Str;
 
$padded = Str::of('James')->padBoth(10, '_');
 
// '__James___'
 
$padded = Str::of('James')->padBoth(10);
 
// ' James '

padLeft

Метод padLeft оборачивает функцию PHP str_pad, заполняя левую часть строки другой строкой, пока последняя строка не достигнет желаемой длины:

use Illuminate\Support\Str;
 
$padded = Str::of('James')->padLeft(10, '-=');
 
// '-=-=-James'
 
$padded = Str::of('James')->padLeft(10);
 
// ' James'

padRight

Метод padRight оборачивает функцию PHP str_pad, заполняя правую часть строки другой строкой, пока конечная строка не достигнет желаемой длины:

use Illuminate\Support\Str;
 
$padded = Str::of('James')->padRight(10, '-');
 
// 'James-----'
 
$padded = Str::of('James')->padRight(10);
 
// 'James '

pipe

Метод pipe позволяет вам преобразовать строку, передав ее текущее значение заданному вызываемому объекту:

use Illuminate\Support\Str;
 
$hash = Str::of('Laravel')->pipe('md5')->prepend('Checksum: ');
 
// 'Checksum: a5c95b86291ea299fcbe64458ed12702'
 
$closure = Str::of('foo')->pipe(function ($str) {
return 'bar';
});
 
// 'bar'

plural

Метод plural преобразует строку единственного числа в форму множественного числа. В настоящее время эта функция поддерживает только английский язык:

use Illuminate\Support\Str;
 
$plural = Str::of('car')->plural();
 
// cars
 
$plural = Str::of('child')->plural();
 
// children

Вы можете указать целое число в качестве второго аргумента функции для получения единственного или множественного числа строки:

use Illuminate\Support\Str;
 
$plural = Str::of('child')->plural(2);
 
// children
 
$plural = Str::of('child')->plural(1);
 
// child

prepend

Метод prepend добавляет указанные значения в строку:

use Illuminate\Support\Str;
 
$string = Str::of('Framework')->prepend('Laravel ');
 
// Laravel Framework

remove

Метод remove удаляет заданное значение или массив значений из строки:

use Illuminate\Support\Str;
 
$string = Str::of('Arkansas is quite beautiful!')->remove('quite');
 
// Arkansas is beautiful!

Вы также можете передать false в качестве второго параметра, чтобы игнорировать регистр при удалении строк.

replace

Метод replace заменяет заданную строку внутри строки:

use Illuminate\Support\Str;
 
$replaced = Str::of('Laravel 6.x')->replace('6.x', '7.x');
 
// Laravel 7.x

replaceArray

Метод replaceArray последовательно заменяет заданное значение в строке, используя массив:

use Illuminate\Support\Str;
 
$string = 'The event will take place between ? and ?';
 
$replaced = Str::of($string)->replaceArray('?', ['8:30', '9:00']);
 
// The event will take place between 8:30 and 9:00

replaceFirst

Метод replaceFirst заменяет первое вхождение данного значения в строке:

use Illuminate\Support\Str;
 
$replaced = Str::of('the quick brown fox jumps over the lazy dog')->replaceFirst('the', 'a');
 
// a quick brown fox jumps over the lazy dog

replaceLast

Метод replaceLast заменяет последнее вхождение данного значения в строке:

use Illuminate\Support\Str;
 
$replaced = Str::of('the quick brown fox jumps over the lazy dog')->replaceLast('the', 'a');
 
// the quick brown fox jumps over a lazy dog

replaceMatches

Метод replaceMatches заменяет все части строки, соответствующие шаблону, заданной строкой замены:

use Illuminate\Support\Str;
 
$replaced = Str::of('(+1) 501-555-1000')->replaceMatches('/[^A-Za-z0-9]++/', '')
 
// '15015551000'

Метод replaceMatches также принимает замыкание, которое будет вызываться с каждой частью строки, соответствующей данному шаблону, что позволяет вам выполнить логику замены внутри замыкания и вернуть замененное значение:

use Illuminate\Support\Str;
 
$replaced = Str::of('123')->replaceMatches('/\d/', function ($match) {
return '['.$match[0].']';
});
 
// '[1][2][3]'

rtrim

Метод rtrim обрезает правую часть данной строки:

use Illuminate\Support\Str;
 
$string = Str::of(' Laravel ')->rtrim();
 
// ' Laravel'
 
$string = Str::of('/Laravel/')->rtrim('/');
 
// '/Laravel'

scan

Метод scan анализирует входные данные из строки в коллекцию в соответствии с форматом, поддерживаемым PHP-функцией sscanf:

use Illuminate\Support\Str;
 
$collection = Str::of('filename.jpg')->scan('%[^.].%s');
 
// collect(['filename', 'jpg'])

singular

Метод singular преобразует строку в ее особую форму. В настоящее время эта функция поддерживает только английский язык:

use Illuminate\Support\Str;
 
$singular = Str::of('cars')->singular();
 
// car
 
$singular = Str::of('children')->singular();
 
// child

slug

Метод slug генерирует дружественный URL-адрес "slug" из заданной строки:

use Illuminate\Support\Str;
 
$slug = Str::of('Laravel Framework')->slug('-');
 
// laravel-framework

snake

Метод snake преобразует данную строку в snake_case:

use Illuminate\Support\Str;
 
$converted = Str::of('fooBar')->snake();
 
// foo_bar

split

Метод split разбивает строку на коллекцию с помощью регулярного выражения:

use Illuminate\Support\Str;
 
$segments = Str::of('one, two, three')->split('/[\s,]+/');
 
// collect(["one", "two", "three"])

start

Метод start добавляет один экземпляр данного значения к строке, если он еще не начинается с этого значения:

use Illuminate\Support\Str;
 
$adjusted = Str::of('this/string')->start('/');
 
// /this/string
 
$adjusted = Str::of('/this/string')->start('/');
 
// /this/string

startsWith

Метод startsWith определяет, начинается ли данная строка с заданного значения:

use Illuminate\Support\Str;
 
$result = Str::of('This is my name')->startsWith('This');
 
// true

studly

Метод studly преобразует данную строку в StudlyCase:

use Illuminate\Support\Str;
 
$converted = Str::of('foo_bar')->studly();
 
// FooBar

substr

Метод substr возвращает часть строки, указанную заданными параметрами start и length:

use Illuminate\Support\Str;
 
$string = Str::of('Laravel Framework')->substr(8);
 
// Framework
 
$string = Str::of('Laravel Framework')->substr(8, 5);
 
// Frame

substrReplace

Метод substrReplace заменяет текст в части строки, начиная с позиции, указанной третьим аргументом, и заменяет количество символов, указанное четвертым аргументом. Передача 0 в четвертый аргумент метода вставит строку в указанную позицию без замены каких-либо существующих символов в строке:

use Illuminate\Support\Str;
 
$string = Str::of('1300')->substrReplace(':', 2);
 
// 13:
 
$string = Str::of('The Framework')->substrReplace(' Laravel', 3, 0);
 
// The Laravel Framework

tap

Метод tap передает строку заданному замыканию, позволяя вам исследовать строку и взаимодействовать с ней, не затрагивая при этом саму строку. Исходная строка возвращается методом tap независимо от того, что возвращает замыкание:

use Illuminate\Support\Str;
 
$string = Str::of('Laravel')
->append(' Framework')
->tap(function ($string) {
dump('String after append: ' . $string);
})
->upper();
 
// LARAVEL FRAMEWORK

test

Метод test определяет, соответствует ли строка заданному шаблону регулярного выражения:

use Illuminate\Support\Str;
 
$result = Str::of('Laravel Framework')->test('/Laravel/');
 
// true

title

Метод title преобразует данную строку в Title Case:

use Illuminate\Support\Str;
 
$converted = Str::of('a nice title uses the correct case')->title();
 
// A Nice Title Uses The Correct Case

trim

Метод trim обрезает данную строку:

use Illuminate\Support\Str;
 
$string = Str::of(' Laravel ')->trim();
 
// 'Laravel'
 
$string = Str::of('/Laravel/')->trim('/');
 
// 'Laravel'

ucfirst

Метод ucfirst возвращает заданную строку с заглавными буквами первого символа:

use Illuminate\Support\Str;
 
$string = Str::of('foo bar')->ucfirst();
 
// Foo bar

upper

Метод upper преобразует данную строку в верхний регистр:

use Illuminate\Support\Str;
 
$adjusted = Str::of('laravel')->upper();
 
// LARAVEL

when

Метод when вызывает данное замыкание, если данное условие true. Замыкание получит экземпляр свободной строки:

use Illuminate\Support\Str;
 
$string = Str::of('Taylor')
->when(true, function ($string) {
return $string->append(' Otwell');
});
 
// 'Taylor Otwell'

При необходимости вы можете передать другое замыкание в качестве третьего параметра методу when. Это замыкание будет выполнено, если параметр условия будет иметь значение false.

whenContains

Метод whenContains вызывает данное замыкание, если строка содержит заданное значение. Замыкание получит свободный экземпляр строки:

use Illuminate\Support\Str;
 
$string = Str::of('tony stark')
->whenContains('tony', function ($string) {
return $string->title();
});
 
// 'Tony Stark'

При необходимости вы можете передать другое замыкание в качестве третьего параметра метода when. Это замыкание будет выполнено, если строка не содержит заданного значения.

Вы также можете передать массив значений, чтобы определить, содержит ли данная строка какие-либо значения в массиве:

use Illuminate\Support\Str;
 
$string = Str::of('tony stark')
->whenContains(['tony', 'hulk'], function ($string) {
return $string->title();
});
 
// Tony Stark

whenContainsAll

Метод whenContainsAll вызывает данное замыкание, если строка содержит все заданные подстроки. Замыкание получит свободный экземпляр строки:

use Illuminate\Support\Str;
 
$string = Str::of('tony stark')
->whenContainsAll(['tony', 'stark'], function ($string) {
return $string->title();
});
 
// 'Tony Stark'

При необходимости вы можете передать другое замыкание в качестве третьего параметра метода when. Это замыкание будет выполнено, если параметр условия оценивается как false.

whenEmpty

Метод whenEmpty вызывает данное замыкание, если строка пуста. Если замыкание возвращает значение, это значение также будет возвращено методом whenEmpty. Если замыкание не возвращает значение, будет возвращен свободный экземпляр строки:

use Illuminate\Support\Str;
 
$string = Str::of(' ')->whenEmpty(function ($string) {
return $string->trim()->prepend('Laravel');
});
 
// 'Laravel'

whenNotEmpty

Метод whenNotEmpty вызывает данное замыкание, если строка не пуста. Если замыкание возвращает значение, это значение также будет возвращено методом whenNotEmpty. Если замыкание не возвращает значение, будет возвращен свободный экземпляр строки:

use Illuminate\Support\Str;
 
$string = Str::of('Framework')->whenNotEmpty(function ($string) {
return $string->prepend('Laravel ');
});
 
// 'Laravel Framework'

whenStartsWith

Метод whenStartsWith вызывает данное замыкание, если строка начинается с заданной подстроки. Замыкание получит свободный экземпляр строки:

use Illuminate\Support\Str;
 
$string = Str::of('disney world')->whenStartsWith('disney', function ($string) {
return $string->title();
});
 
// 'Disney World'

whenEndsWith

Метод whenEndsWith вызывает данное замыкание, если строка заканчивается заданной подстрокой. Замыкание получит свободный экземпляр строки:

use Illuminate\Support\Str;
 
$string = Str::of('disney world')->whenEndsWith('world', function ($string) {
return $string->title();
});
 
// 'Disney World'

whenExactly

Метод whenExactly вызывает данное замыкание, если строка точно соответствует заданной строке. Замыкание получит свободный экземпляр строки:

use Illuminate\Support\Str;
 
$string = Str::of('laravel')->whenExactly('laravel', function ($string) {
return $string->title();
});
 
// 'Laravel'

whenIs

Метод whenIs вызывает данное замыкание, если строка соответствует заданному шаблону. Звездочки могут использоваться в качестве подстановочных знаков. Замыкание получит свободный экземпляр строки:

use Illuminate\Support\Str;
 
$string = Str::of('foo/bar')->whenIs('foo/*', function ($string) {
return $string->append('/baz');
});
 
// 'foo/bar/baz'

whenIsAscii

Метод whenIsAscii вызывает данное замыкание, если строка представляет собой 7-битный ASCII. Замыкание получит свободный экземпляр строки:

use Illuminate\Support\Str;
 
$string = Str::of('foo/bar')->whenIsAscii('laravel', function ($string) {
return $string->title();
});
 
// 'Laravel'

whenIsUuid

Метод whenIsUuid вызывает данное замыкание, если строка является допустимым UUID. Замыкание получит свободный экземпляр строки:

use Illuminate\Support\Str;
 
$string = Str::of('foo/bar')->whenIsUuid('a0a2a2d2-0b87-4a18-83f2-2529882be2de', function ($string) {
return $string->substr(0, 8);
});
 
// 'a0a2a2d2'

whenTest

Метод whenTest вызывает данное замыкание, если строка соответствует заданному регулярному выражению. Замыкание получит свободный экземпляр строки:

use Illuminate\Support\Str;
 
$string = Str::of('laravel framework')->whenTest('/laravel/', function ($string) {
return $string->title();
});
 
// 'Laravel Framework'

wordCount

Метод wordCount возвращает количество слов, содержащихся в строке:

use Illuminate\Support\Str;
 
Str::of('Hello, world!')->wordCount(); // 2

words

Метод words ограничивает количество слов в строке. При необходимости вы можете указать дополнительную строку, которая будет добавлена к усеченной строке:

use Illuminate\Support\Str;
 
$string = Str::of('Perfectly balanced, as all things should be.')->words(3, ' >>>');
 
// Perfectly balanced, as >>>

URL-адреса

action()

Функция action генерирует URL-адрес для данного действия контроллера:

use App\Http\Controllers\HomeController;
 
$url = action([HomeController::class, 'index']);

Если метод принимает параметры маршрута, вы можете передать их в качестве второго аргумента метода:

$url = action([UserController::class, 'profile'], ['id' => 1]);

asset()

Функция asset генерирует URL для актива, используя текущую схему запроса (HTTP или HTTPS):

$url = asset('img/photo.jpg');

Вы можете настроить хост URL ресурса, установив переменную ASSET_URL в вашем файле .env. Это может быть полезно, если вы размещаете свои активы на внешнем сервисе, таком как Amazon S3 или другой CDN:

// ASSET_URL=http://example.com/assets
 
$url = asset('img/photo.jpg'); // http://example.com/assets/img/photo.jpg

route()

Функция route генерирует URL для заданного именованного маршрута:

$url = route('route.name');

Если маршрут принимает параметры, вы можете передать их в качестве второго аргумента функции:

$url = route('route.name', ['id' => 1]);

По умолчанию функция route генерирует абсолютный URL. Если вы хотите сгенерировать относительный URL-адрес, вы можете передать false в качестве третьего аргумента функции:

$url = route('route.name', ['id' => 1], false);

secure_asset()

Функция secure_asset генерирует URL для актива с использованием HTTPS:

$url = secure_asset('img/photo.jpg');

secure_url()

Функция secure_url генерирует полный URL HTTPS для заданного пути. Дополнительные сегменты URL могут быть переданы во втором аргументе функции:

$url = secure_url('user/profile');
 
$url = secure_url('user/profile', [1]);

url()

Функция url генерирует полный URL для указанного пути:

$url = url('user/profile');
 
$url = url('user/profile', [1]);

Если путь не указан, возвращается экземпляр Illuminate\Routing\UrlGenerator:

$current = url()->current();
 
$full = url()->full();
 
$previous = url()->previous();

Дополнительные

abort()

Функция abort генерирует исключение HTTP, которое будет обработано обработчиком исключения:

abort(403);

Вы также можете предоставить сообщение об исключении и настраиваемые заголовки HTTP-ответа, которые должны быть отправлены в браузер:

abort(403, 'Unauthorized.', $headers);

abort_if()

Функция abort_if генерирует исключение HTTP, если данное логическое выражение оценивается как true:

abort_if(! Auth::user()->isAdmin(), 403);

Подобно методу abort, вы также можете предоставить текст ответа исключения в качестве третьего аргумента и массив пользовательских заголовков ответа в качестве четвертого аргумента функции.

abort_unless()

Функция abort_unless генерирует исключение HTTP, если данное логическое выражение оценивается как false:

abort_unless(Auth::user()->isAdmin(), 403);

Подобно методу abort, вы также можете предоставить текст ответа исключения в качестве третьего аргумента и массив пользовательских заголовков ответа в качестве четвертого аргумента функции.

app()

Функция app возвращает экземпляр сервис контейнера:

$container = app();

Вы можете передать имя класса или интерфейса, чтобы разрешить его из контейнера:

$api = app('HelpSpot\API');

auth()

Функция auth возвращает экземпляр аутентификатора. Вы можете использовать его как альтернативу фасаду Auth:

$user = auth()->user();

При необходимости вы можете указать, к какому экземпляру защиты вы хотите получить доступ:

$user = auth('admin')->user();

back()

Функция back генерирует HTTP-ответ перенаправления в предыдущее местоположение пользователя:

return back($status = 302, $headers = [], $fallback = '/');
 
return back();

bcrypt()

Функция bcrypt хеширует заданное значение с помощью Bcrypt. Вы можете использовать эту функцию как альтернативу фасаду Hash:

$password = bcrypt('my-secret-password');

blank()

Функция blank определяет, является ли данное значение «пустым»:

blank('');
blank(' ');
blank(null);
blank(collect());
 
// true
 
blank(0);
blank(true);
blank(false);
 
// false

Для обратного к blank, смотрите метод filled.

broadcast()

Функция broadcast броадкастинга передает данное событие своим слушателям:

broadcast(new UserRegistered($user));
 
broadcast(new UserRegistered($user))->toOthers();

cache()

Функция cache может использоваться для получения значений из cache. Если данный ключ не существует в кеше, будет возвращено необязательное значение по умолчанию:

$value = cache('key');
 
$value = cache('key', 'default');

Вы можете добавлять элементы в кеш, передавая в функцию массив пар ключ / значение. Вы также должны передать количество секунд или продолжительность, в течение которых кешированное значение должно считаться действительным:

cache(['key' => 'value'], 300);
 
cache(['key' => 'value'], now()->addSeconds(10));

class_uses_recursive()

Функция class_uses_recursive возвращает все признаки, используемые классом, включая признаки, используемые всеми его родительскими классами:

$traits = class_uses_recursive(App\Models\User::class);

collect()

Функция collect создает экземпляр коллекции из заданного значения:

$collection = collect(['taylor', 'abigail']);

config()

Функция config получает значение переменной конфигурации. Доступ к значениям конфигурации можно получить с помощью синтаксиса «точка», который включает имя файла и параметр, к которому вы хотите получить доступ. Может быть указано значение по умолчанию, которое возвращается, если параметр конфигурации не существует:

$value = config('app.timezone');
 
$value = config('app.timezone', $default);

Вы можете установить переменные конфигурации во время выполнения, передав массив пар ключ / значение. Однако обратите внимание, что эта функция влияет только на значение конфигурации для текущего запроса и не обновляет ваши фактические значения конфигурации:

config(['app.debug' => true]);

cookie()

Функция cookie создает новый экземпляр cookie:

$cookie = cookie('name', 'value', $minutes);

csrf_field()

Функция csrf_field генерирует HTML-поле ввода hidden, содержащее значение токена CSRF. Например, используя синтаксис Blade:

{{ csrf_field() }}

csrf_token()

Функция csrf_token извлекает значение текущего токена CSRF:

$token = csrf_token();

dd()

Функция dd выгружает заданные переменные и завершает выполнение скрипта:

dd($value);
 
dd($value1, $value2, $value3, ...);

Если вы не хотите останавливать выполнение вашего скрипта, используйте вместо этого функцию dump.

dispatch()

Функция dispatch помещает данное задание в очередь заданий Laravel:

dispatch(new App\Jobs\SendEmails);

dump()

Функция dump выгружает заданные переменные:

dump($value);
 
dump($value1, $value2, $value3, ...);

Если вы хотите остановить выполнение сценария после сброса переменных, используйте вместо этого функцию dd.

env()

Функция env извлекает значение переменной среды или возвращает значение по умолчанию:

$env = env('APP_ENV');
 
$env = env('APP_ENV', 'production');

{note} Если вы выполняете команду config:cache в процессе развертывания, вы должны быть уверены, что вызываете функцию env только из ваших файлов конфигурации. После кэширования конфигурации файл .env не будет загружен, и все вызовы функции env вернут null.

event()

Функция event отправляет данное событие своим слушателям:

event(new UserRegistered($user));

filled()

Функция filled определяет, не является ли данное значение «пустым»:

filled(0);
filled(true);
filled(false);
 
// true
 
filled('');
filled(' ');
filled(null);
filled(collect());
 
// false

Чтобы узнать об обратном методе filled, смотрите метод blank.

info()

Функция info запишет информацию в журнал вашего приложения:

info('Some helpful information!');

В функцию также может быть передан массив контекстных данных:

info('User login attempt failed.', ['id' => $user->id]);

logger()

Функцию logger можно использовать для записи сообщения уровня debug в журнале:

logger('Debug message');

В функцию также может быть передан массив контекстных данных:

logger('User has logged in.', ['id' => $user->id]);

Экземпляр logger будет возвращен, если в функцию не передано значение:

logger()->error('You are not allowed here.');

method_field()

Функция method_field генерирует HTML-поле ввода hidden, содержащее поддельное значение HTTP-глагола формы. Например, используя синтаксис Blade:

<form method="POST">
{{ method_field('DELETE') }}
</form>

now()

Функция now создает новый экземпляр Illuminate\Support\Carbon для текущего времени:

$now = now();

old()

Функция old извлекает значение старого ввода, которое передается в сеанс :

$value = old('value');
 
$value = old('value', 'default');

optional()

Функция optional принимает любой аргумент и позволяет вам получать доступ к свойствам или вызывать методы этого объекта. Если данный объект имеет значение null, свойства и методы будут возвращать null вместо того, чтобы вызывать ошибку:

return optional($user->address)->street;
 
{!! old('name', optional($user)->name) !!}

Функция optional также принимает замыкание в качестве второго аргумента. Замыкание будет вызвано, если значение, указанное в качестве первого аргумента, не равно нулю:

return optional(User::find($id), function ($user) {
return $user->name;
});

policy()

Метод policy извлекает экземпляр политики для данного класса:

$policy = policy(App\Models\User::class);

redirect()

Функция redirect возвращает HTTP-ответ перенаправления или возвращает экземпляр перенаправителя, если вызывается без аргументов:

return redirect($to = null, $status = 302, $headers = [], $https = null);
 
return redirect('/home');
 
return redirect()->route('route.name');

report()

Функция report сообщит об исключении, используя ваш обработчик исключений:

report($e);

Функция report также принимает строку в качестве аргумента. Когда в функцию передается строка, функция создает исключение с данной строкой в качестве сообщения:

report('Something went wrong.');

request()

Функция request возвращает текущий экземпляр запроса или получает значение поля ввода из текущего запроса:

$request = request();
 
$value = request('key', $default);

rescue()

Функция rescue выполняет заданное замыкание и перехватывает любые исключения, возникающие во время его выполнения. Все перехваченные исключения будут отправлены вашему обработчику исключений; однако запрос продолжит обработку:

return rescue(function () {
return $this->method();
});

Вы также можете передать второй аргумент функции rescue. Этот аргумент будет значением "по умолчанию", которое должно быть возвращено, если во время выполнения замыкания возникает исключение:

return rescue(function () {
return $this->method();
}, false);
 
return rescue(function () {
return $this->method();
}, function () {
return $this->failure();
});

resolve()

Функция resolve преобразует данный класс или имя интерфейса в экземпляр, используя сервис контенейр:

$api = resolve('HelpSpot\API');

response()

Функция response создает экземпляр ответа или получает экземпляр фабрики ответов:

return response('Hello World', 200, $headers);
 
return response()->json(['foo' => 'bar'], 200, $headers);

retry()

Функция retry пытается выполнить данный обратный вызов, пока не будет достигнут заданный максимальный порог попытки. Если обратный вызов не вызывает исключения, возвращается его возвращаемое значение. Если обратный вызов вызывает исключение, он будет автоматически повторен. Если максимальное количество попыток превышено, будет сгенерировано исключение:

return retry(5, function () {
// Attempt 5 times while resting 100ms in between attempts...
}, 100);

Если вы хотите вручную рассчитать количество миллисекунд ожидания между попытками, вы можете передать замыкание в качестве третьего аргумента функции retry:

return retry(5, function () {
// ...
}, function ($attempt) {
return $attempt * 100;
});

Чтобы повторить попытку только при определенных условиях, вы можете передать замыкание в качестве четвертого аргумента функции retry:

return retry(5, function () {
// ...
}, 100, function ($exception) {
return $exception instanceof RetryException;
});

session()

Функцию session можно использовать для получения или установки значений сессий:

$value = session('key');

Вы можете установить значения, передав в функцию массив пар ключ / значение:

session(['chairs' => 7, 'instruments' => 3]);

Хранилище сеансов будет возвращено, если функции не передано значение:

$value = session()->get('key');
 
session()->put('key', $value);

tap()

Функция tap принимает два аргумента: произвольное $value и замыкание. $value будет передано в замыкание, а затем будет возвращено функцией tap. Возвращаемое значение замыкания не имеет значения:

$user = tap(User::first(), function ($user) {
$user->name = 'taylor';
 
$user->save();
});

Если в функцию tap не передается замыкание, вы можете вызвать любой метод для данного $value. Возвращаемое значение метода, который вы вызываете, всегда будет $value, независимо от того, что метод фактически возвращает в своем определении. Например, метод update Eloquent обычно возвращает целое число. Однако мы можем заставить метод возвращать саму модель, связав вызов метода update через функцию tap:

$user = tap($user)->update([
'name' => $name,
'email' => $email,
]);

Чтобы добавить к классу метод tap, вы можете добавить в класс трейта Illuminate\Support\Traits\Tappable. Метод tap этого трейта принимает замыкание как единственный аргумент. Сам экземпляр объекта будет передан Замыканию, а затем будет возвращен методом tap:

return $user->tap(function ($user) {
//
});

throw_if()

Функция throw_if генерирует данное исключение, если данное логическое выражение оценивается как true:

throw_if(! Auth::user()->isAdmin(), AuthorizationException::class);
 
throw_if(
! Auth::user()->isAdmin(),
AuthorizationException::class,
'You are not allowed to access this page.'
);

throw_unless()

Функция throw_unless генерирует данное исключение, если данное логическое выражение оценивается как false:

throw_unless(Auth::user()->isAdmin(), AuthorizationException::class);
 
throw_unless(
Auth::user()->isAdmin(),
AuthorizationException::class,
'You are not allowed to access this page.'
);

today()

Функция today создает новый экземпляр Illuminate\Support\Carbon для текущей даты:

$today = today();

trait_uses_recursive()

Функция trait_uses_recursive возвращает все трейты, используемые трейтом:

$traits = trait_uses_recursive(\Illuminate\Notifications\Notifiable::class);

transform()

Функция transform выполняет замыкание для данного значения, если значение не пустое, а затем возвращает возвращаемое значение замыкания:

$callback = function ($value) {
return $value * 2;
};
 
$result = transform(5, $callback);
 
// 10

В качестве третьего аргумента функции может быть передано значение по умолчанию или замыкание. Это значение будет возвращено, если данное значение пусто:

$result = transform(null, $callback, 'The value is blank');
 
// The value is blank

validator()

Функция validator создает новый экземпляр валидатора с заданными аргументами. Вы можете использовать его как альтернативу фасаду Validator:

$validator = validator($data, $rules, $messages);

value()

Функция value возвращает заданное значение. Однако, если вы передадите замыкание функции, замыкание будет выполнено, и его возвращенное значение будет возвращено:

$result = value(true);
 
// true
 
$result = value(function () {
return false;
});
 
// false

view()

Функция view получает экземпляр представления:

return view('auth.login');

with()

Функция with возвращает заданное значение. Если замыкание передается в качестве второго аргумента функции, замыкание будет выполнено, и будет возвращено его возвращаемое значение:

$callback = function ($value) {
return is_numeric($value) ? $value * 2 : 0;
};
 
$result = with(5, $callback);
 
// 10
 
$result = with(null, $callback);
 
// 0
 
$result = with(5, null);
 
// 5