Помощники
Введение
Laravel включает в себя множество глобальных «вспомогательных» функций PHP. Многие из этих функций используются самим фреймворком; однако вы можете использовать их в своих собственных приложениях, если сочтете их удобными.
Доступные методы
Массивы и объекты
Arr::accessible Arr::add Arr::collapse Arr::crossJoin Arr::divide Arr::dot Arr::except Arr::exists Arr::first Arr::flatten Arr::forget Arr::get Arr::has Arr::hasAny Arr::isAssoc Arr::last Arr::only Arr::pluck Arr::prepend Arr::pull Arr::query Arr::random Arr::set Arr::shuffle Arr::sort Arr::sortRecursive Arr::toCssClasses Arr::undot Arr::where Arr::whereNotNull Arr::wrap data_fill data_get data_set head last
Пути
Строки
__ class_basename e preg_replace_array Str::after Str::afterLast Str::ascii Str::before Str::beforeLast Str::between Str::camel Str::contains Str::containsAll Str::endsWith Str::finish Str::headline Str::is Str::isAscii Str::isUuid Str::kebab Str::length Str::limit Str::lower Str::markdown Str::mask Str::orderedUuid Str::padBoth Str::padLeft Str::padRight Str::plural Str::pluralStudly Str::random Str::remove Str::replace Str::replaceArray Str::replaceFirst Str::replaceLast Str::reverse Str::singular Str::slug Str::snake Str::start Str::startsWith Str::studly Str::substr Str::substrCount Str::substrReplace Str::title Str::toHtmlString Str::ucfirst Str::upper Str::uuid Str::wordCount Str::words trans trans_choice
Свободные строки
after afterLast append ascii basename before beforeLast between camel contains containsAll dirname endsWith exactly explode finish is isAscii isEmpty isNotEmpty isUuid kebab length limit lower ltrim markdown mask match matchAll padBoth padLeft padRight pipe plural prepend remove replace replaceArray replaceFirst replaceLast replaceMatches rtrim scan singular slug snake split start startsWith studly substr substrReplace tap test title trim ucfirst upper when whenContains whenContainsAll whenEmpty whenNotEmpty whenStartsWith whenEndsWith whenExactly whenIs whenIsAscii whenIsUuid whenTest wordCount words
URL-адреса
Дополнительные
abort abort_if abort_unless app auth back bcrypt blank broadcast cache class_uses_recursive collect config cookie csrf_field csrf_token dd dispatch dump env event filled info logger method_field now old optional policy redirect report request rescue resolve response retry session tap throw_if throw_unless today trait_uses_recursive transform validator value view with
Список методов
Массивы и объекты
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>'); // <html>foo</html>
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