Хелперы
Введение
Laravel включает множество глобальных вспомогательных PHP-функций ("хелперов"). Большинство таких функций используются самим фреймворком; однако, вы можете использовать их в собственных приложениях, если сочтете их удобными.
Доступные методы
Массивы и объекты
Arr::add Arr::collapse Arr::crossJoin Arr::divide Arr::dot Arr::except Arr::first Arr::flatten Arr::forget Arr::get Arr::has Arr::isAssoc Arr::last Arr::only Arr::pluck Arr::prepend Arr::pull Arr::random Arr::query Arr::set Arr::shuffle Arr::sort Arr::sortRecursive Arr::where Arr::wrap data_fill data_get data_set head last
Пути
Строки
__ class_basename e preg_replace_array Str::after Str::afterLast Str::before Str::beforeLast Str::camel Str::contains Str::containsAll Str::endsWith Str::finish Str::is Str::isUuid Str::kebab Str::limit Str::orderedUuid Str::plural Str::random Str::replaceArray Str::replaceFirst Str::replaceLast Str::singular Str::slug Str::snake Str::start Str::startsWith Str::studly Str::title Str::ucfirst Str::uuid Str::words trans trans_choice
URL
Прочее
abort abort_if abort_unless app auth back bcrypt blank broadcast cache class_uses_recursive collect config cookie csrf_field csrf_token dd decrypt dispatch dispatch_now dump encrypt env event factory 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::add()
{#collection-method .first-collection-method}
Метод 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()
{#collection-method}
Метод Arr::collapse()
объединяет массив массивов в единый массив:
Функция array_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()
{#collection-method}
Метод 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()
{#collection-method}
Метод Arr::divide
возвращает два массива, один из которых содержит ключи, а другой — значения переданного массива:
use Illuminate\Support\Arr;
[$keys, $values] = Arr::divide(['name' => 'Desk']);
// $keys: ['name']
// $values: ['Desk']
Arr::dot()
{#collection-method}
Метод Arr::dot
преобразует многомерный массив в одномерный, который использует точку для указания глубины:
use Illuminate\Support\Arr;
$array = ['products' => ['desk' => ['price' => 100]]];
$flattened = Arr::dot($array);
// ['products.desk.price' => 100]
Arr::except()
{#collection-method}
Метод Arr::except
удаляет из массива заданные пары ключ/значение:
use Illuminate\Support\Arr;
$array = ['name' => 'Desk', 'price' => 100];
$filtered = Arr::except($array, ['price']);
// ['name' => 'Desk']
Arr::first()
{#collection-method}
Метод 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()
{#collection-method}
Метод Arr::flatten
преобразует многомерный массив в одномерный:
use Illuminate\Support\Arr;
$array = ['name' => 'Joe', 'languages' => ['PHP', 'Ruby']];
$flattened = Arr::flatten($array);
// ['Joe', 'PHP', 'Ruby']
Arr::forget()
{#collection-method}
Метод Arr::forget
удаляет заданную пару ключ/значение из многомерного массива, используя синтаксис с точкой ("dot" notation):
use Illuminate\Support\Arr;
$array = ['products' => ['desk' => ['price' => 100]]];
Arr::forget($array, 'products.desk');
// ['products' => []]
Arr::get()
{#collection-method}
Метод Arr::get
возвращает значение из многомерного массива, используя синтаксис с точкой ("dot" notation):
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()
{#collection-method}
Метод Arr::has
проверяет существование заданного элемента или элементов в массиве, используя синтаксис с точкой ("dot" notation):
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::isAssoc()
{#collection-method}
Метод 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()
{#collection-method}
Метод 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()
{#collection-method}
Метод 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()
{#collection-method}
Метод 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()
{#collection-method}
Метод 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()
{#collection-method}
Метод 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::random()
{#collection-method}
Метод Arr::random
возвращает случайное значение из массива:
use Illuminate\Support\Arr;
$array = [1, 2, 3, 4, 5];
$random = Arr::random($array);
// 4 - (полученно случайным образом)
Вы также можете указать количество возвращаемых элементов в качестве необязательного второго аргумента. Обратите внимание, что при указании этого аргумента будет возвращен массив, даже если требуется только один элемент:
use Illuminate\Support\Arr;
$items = Arr::random($array, 2);
// [2, 5] - (полученно случайным образом)
Arr::query()
{#collection-method}
Метод 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::set()
{#collection-method}
Метод Arr::set
устанавливает значение в многомерном массиве, используя синтаксис с точкой ("dot" notation):
use Illuminate\Support\Arr;
$array = ['products' => ['desk' => ['price' => 100]]];
Arr::set($array, 'products.desk.price', 200);
// ['products' => ['desk' => ['price' => 200]]]
Arr::shuffle()
{#collection-method}
Метод Arr::shuffle
случайным образом перемешивает элементы в массиве:
use Illuminate\Support\Arr;
$array = Arr::shuffle([1, 2, 3, 4, 5]);
// [3, 2, 5, 1, 4] - (сформированный случайным образом)
Arr::sort()
{#collection-method}
Метод 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()
{#collection-method}
Метод 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::where()
{#collection-method}
Метод 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::wrap()
{#collection-method}
Метод Arr::wrap
обёртывает заданное значение в массив. Если значение уже является массивом, то оно не будет изменено:
use Illuminate\Support\Arr;
$string = 'Laravel';
$array = Arr::wrap($string);
// ['Laravel']
Если заданное значение является null
, то будет возвращен пустой массив:
use Illuminate\Support\Arr;
$nothing = null;
$array = Arr::wrap($nothing);
// []
data_fill()
Функция data_fill
устанавливает недостающее значение внутри вложенного массива или объекта, используя синтаксис с точкой ("dot" notation):
$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]]]
Эта функция также принимает звездочки *
в качестве подстановки (wildcards) и соответственно заполняет массив:
$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
получает значение из вложенного массива или объекта, используя синтаксис с точкой ("dot" notation):
$data = ['products' => ['desk' => ['price' => 100]]];
$price = data_get($data, 'products.desk.price');
// 100
Функция data_get
также принимает значение по умолчанию, которое будет возвращено, если указанный ключ не будет найден:
$discount = data_get($data, 'products.desk.discount', 0);
// 0
Функция также принимает подстановки (wildcards), используя звездочки *
, которые могут использоваться вместо любого ключа массива или объекта:
$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
устанавливает значение внутри многомерного массива или объекта, используя синтаксис с точкой ("dot" notation):
$data = ['products' => ['desk' => ['price' => 100]]];
data_set($data, 'products.desk.price', 200);
// ['products' => ['desk' => ['price' => 200]]]
Функция также принимает подстановки (wildcards), используя звездочки *
, и устанавливает значения соответственно:
$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, 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
. Также можно использовать функцию app_path
для получения полного пути к указанному файлу относительно каталога приложения:
$path = app_path();
$path = app_path('Http/Controllers/Controller.php');
base_path()
Функция base_path
возвращает полный путь к корневой папке приложения. Также можно использовать функцию 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
для получения полного пути к файлу в папке database
:
$path = database_path();
$path = database_path('factories/UserFactory.php');
mix()
Функция mix
возвращает путь к версионированному файлу Mix:
$path = mix('css/app.css');
public_path()
Функция public_path
возвращает полный путь к папке public
. Вы также можете использовать функцию public_path
для получения полного пути к файлу в папке public
:
$path = public_path();
$path = public_path('css/app.css');
resource_path()
Функция resource_path
возвращает полный путь к папке resources
. Вы также можете использовать функцию resource_path
для получения полного пути к файлу в папке resources
:
$path = resource_path();
$path = resource_path('sass/app.scss');
storage_path()
Функция storage_path
возвращает полный путь к папке storage
. Вы также можете использовать функцию storage_path
для получения полного пути к файлу в папке storage
:
$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()
{#collection-method}
Метод Str::after
возвращает часть строки после заданного значения. Вся строка будет возвращена, если она не содержит заданного значения:
use Illuminate\Support\Str;
$slice = Str::after('This is my name', 'This is');
// ' my name'
Str::afterLast()
{#collection-method}
Метод Str::afterLast
возвращает часть строки после последнего вхождения заданного значения. Вся строка будет возвращена, если она не содержит заданного значения:
use Illuminate\Support\Str;
$slice = Str::afterLast('App\Http\Controllers\Controller', '\\');
// 'Controller'
Str::before()
{#collection-method}
Метод Str::before
возвращает часть строки до заданного значения:
use Illuminate\Support\Str;
$slice = Str::before('This is my name', 'my name');
// 'This is '
Str::beforeLast()
{#collection-method}
Метод Str::beforeLast
возвращает часть строки до последнего вхождения заданного значения:
use Illuminate\Support\Str;
$slice = Str::beforeLast('This is my name', 'is');
// 'This '
Str::camel()
{#collection-method}
Метод Str::camel
преобразует строку в camelCase
:
use Illuminate\Support\Str;
$converted = Str::camel('foo_bar');
// fooBar
Str::contains()
{#collection-method}
Метод 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()
{#collection-method}
Метод Str::containsAll
определяет, содержит ли строка все значения заданного массива:
use Illuminate\Support\Str;
$containsAll = Str::containsAll('This is my name', ['my', 'name']);
// true
Str::endsWith()
{#collection-method}
Метод 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()
{#collection-method}
Метод Str::finish
добавляет одно вхождение подстроки в конец строки, если она уже не заканчивается этим вхождением:
use Illuminate\Support\Str;
$adjusted = Str::finish('this/string', '/');
// this/string/
$adjusted = Str::finish('this/string/', '/');
// this/string/
Str::is()
{#collection-method}
Метод Str::is
определяет, соответствует ли строка заданному шаблону. Звездочки *
могут использоваться как символы подстановки:
use Illuminate\Support\Str;
$matches = Str::is('foo*', 'foobar');
// true
$matches = Str::is('baz*', 'foobar');
// false
Str::ucfirst()
{#collection-method}
Метод Str::ucfirst
возвращает строку с первым символом в верхнем регистре:
use Illuminate\Support\Str;
$string = Str::ucfirst('foo bar');
// Foo bar
Str::isUuid()
{#collection-method}
Метод Str::isUuid
определяет, является ли строка валидным UUID:
use Illuminate\Support\Str;
$isUuid = Str::isUuid('a0a2a2d2-0b87-4a18-83f2-2529882be2de');
// true
$isUuid = Str::isUuid('laravel');
// false
Str::kebab()
{#collection-method}
Метод Str::kebab
преобразует строку в kebab-case
:
use Illuminate\Support\Str;
$converted = Str::kebab('fooBar');
// foo-bar
Str::limit()
{#collection-method}
Метод 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::orderedUuid()
{#collection-method}
Метод Str::orderedUuid
генерирует "timestamp first" UUID, который может быть эффективно сохранен в индексируемой колонке базы данных:
use Illuminate\Support\Str;
return (string) Str::orderedUuid();
Str::plural()
{#collection-method}
Метод 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
$plural = Str::plural('child', 1);
// child
Str::random()
{#collection-method}
Метод Str::random
создает случайную строку заданной длины. Эта функция использует функцию PHP random_bytes
:
use Illuminate\Support\Str;
$random = Str::random(40);
Str::replaceArray()
{#collection-method}
Метод 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()
{#collection-method}
Метод 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()
{#collection-method}
Метод 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::singular()
{#collection-method}
Метод Str::singular
преобразует слово-строку в единственное число. В настоящее время эта функция поддерживает только английский язык:
use Illuminate\Support\Str;
$singular = Str::singular('cars');
// car
$singular = Str::singular('children');
// child
Str::slug()
{#collection-method}
Метод Str::slug
генерирует "slug" подходящий для URL из строки:
use Illuminate\Support\Str;
$slug = Str::slug('Laravel 5 Framework', '-');
// laravel-5-framework
Str::snake()
{#collection-method}
Метод Str::snake
преобразует строку в snake_case
:
use Illuminate\Support\Str;
$converted = Str::snake('fooBar');
// foo_bar
Str::start()
{#collection-method}
Метод Str::start
добавляет подстроку в начало переданной строки, если она еще не начинается с этой подстроки:
use Illuminate\Support\Str;
$adjusted = Str::start('this/string', '/');
// /this/string
$adjusted = Str::start('/this/string', '/');
// /this/string
Str::startsWith()
{#collection-method}
Метод Str::startsWith
определяет, начинается ли строка с заданного значения:
use Illuminate\Support\Str;
$result = Str::startsWith('This is my name', 'This');
// true
Str::studly()
{#collection-method}
Метод Str::studly
преобразует строку в StudlyCase
:
use Illuminate\Support\Str;
$converted = Str::studly('foo_bar');
// FooBar
Str::title()
{#collection-method}
Метод 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::uuid()
{#collection-method}
Метод Str::uuid
генерирует UUID (версия 4):
use Illuminate\Support\Str;
return (string) Str::uuid();
Str::words()
{#collection-method}
Метод 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
, если ключ перевода не существует.
URL
action()
Функция action
генерирует URL для заданного метода контроллера. Вам не нужно передавать полное пространство имён контроллера. Вместо этого передайте имя класса контроллера относительно пространства имен App\Http\Controllers
:
$url = action('HomeController@index');
$url = action([HomeController::class, 'index']);
Если метод принимает параметры маршрута, вы можете передать их вторым аргументом:
$url = action('UserController@profile', ['id' => 1]);
asset()
Функция asset
создает URL для ресурса, используя текущую схему запроса (HTTP или HTTPS):
$url = asset('img/photo.jpg');
Вы можете настроить хост URL адреса, установив параметр ASSET_URL
в файле .env
. Это может быть полезно, если вы размещаете свои ресурсы на внешнем сервисе, таком как Amazon S3:
// ASSET_URL=http://example.com/assets
$url = asset('img/photo.jpg'); // http://example.com/assets/img/photo.jpg
route()
Функция route
генерирует URL для заданного именованного роута:
$url = route('routeName');
Если роут принимает параметры, вы можете передать их вторым аргументом:
$url = route('routeName', ['id' => 1]);
По-умолчанию функция route
генерирует абсолютный URL-адрес. Если вы хотите сгенерировать относительный URL-адрес, можно передать false
в качестве третьего аргумента:
$url = route('routeName', ['id' => 1], false);
secure_asset()
Функция secure_asset
создает URL для ресурса с использованием HTTPS:
$url = secure_asset('img/photo.jpg');
secure_url()
Функция secure_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);
Вы также можете передать текст и заголовки ответа:
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()
создает ответ с редиректом на предыдущую страницу пользователя:
return back($status = 302, $headers = [], $fallback = false);
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));
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\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
:
decrypt()
Функция decrypt
расшифровывает заданное значение, используя шифрование Laravel:
$decrypted = decrypt($encrypted_value);
dispatch()
Функция dispatch
помещает задачу в очередь задач Laravel:
dispatch(new App\Jobs\SendEmails);
dispatch_now()
Функция dispatch_now
запускает задачу немедленно и возвращает значение её метода handle
:
$result = dispatch_now(new App\Jobs\SendEmails);
dump()
Функция dump
производит дамп переменных:
dump($value);
dump($value1, $value2, $value3, ...);
Если вы хотите остановить выполнение после вывода переменных, используйте функцию dd
.
encrypt()
Функция encrypt
шифрует заданное значение, используя шифрование Laravel:
$encrypted = encrypt($unencrypted_value);
env()
Функция env
получает значение переменной окружения или возвращает значение по умолчанию:
$env = env('APP_ENV');
// Returns 'production' if APP_ENV is not set...
$env = env('APP_ENV', 'production');
Если вы выполняете командуconfig:cache
во время вашего процесса деплоя, вы должны быть уверены, что вызываете функциюenv
только в конфигурационных файлах. Как только конфигурация будет закэширована, файл.env
не будет загружаться и все вызовы функцииenv
вернутnull
.
event()
Функция event
отправляет указанное событие его слушателям:
event(new UserRegistered($user));
factory()
Функция factory
создает построитель фабрики моделей для данного класса, имени и количества. Его можно использовать при тестировании или заполнении БД:
$user = factory(App\User::class)->make();
filled()
Функция filled
определяет, не является ли заданное значение "пустым":
filled(0);
filled(true);
filled(false);
// true
filled('');
filled(' ');
filled(null);
filled(collect());
// false
Функция, обратная filled
— blank
.
info()
Функция info
запишет информацию в лог:
info('Некая полезная информация!');
В функцию можно передать массив контекстных данных:
info('Неудачная попытка входа пользователя.', ['id' => $user->id]);
logger()
Функцию logger
можно использовать, чтобы записать в лог сообщение уровня debug
:
logger('Отладочное сообщение');
В функцию можно передать массив контекстных данных:
logger('Вход пользователя.', ['id' => $user->id]);
Если в функцию не переданы значения, будет возвращен экземпляр логгера:
logger()->error('Вам сюда нельзя.');
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
также принимает функцию в качестве второго аргумента. Функция будет вызвана если значение переданное в первом аргументе не является null
:
return optional(User::find($id), function ($user) {
return new DummyUser;
});
policy()
Функция policy
получает экземпляр политик для заданного класса:
$policy = policy(App\User::class);
redirect()
Функция redirect
возвращает HTTP-ответ с редиректом, или экземпляр переадресатора, если вызывается без аргументов:
return redirect($to = null, $status = 302, $headers = [], $secure = null);
return redirect('/home');
return redirect()->route('route.name');
report()
Функция report
сообщит об исключении, используя метод report
обработчика исключения:
report($e);
request()
Функция request
возвращает экземпляр текущего запроса или получает элемент ввода:
$request = request();
$value = request('key', $default);
rescue()
Функция rescue
выполняет переданную функцию и перехватывает любые исключения, возникающие во время её выполнения. Все пойманные исключения будет отправлены в метод report
обработчика исключений; однако, выполнение продолжиться:
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 () {
// максимум 5 попыток на выполнение с паузой 100мс между попытками
}, 100);
session()
Функция session
используется для получения или задания значений сессии:
$value = session('key');
Вы можете задать значения, передав массив пар ключ/значение в функцию:
session(['chairs' => 7, 'instruments' => 3]);
Если в функцию не было передано значение, то она вернет значения сессии:
$value = session()->get('key');
session()->put('key', $value);
tap()
Функция tap
принимает два аргумента: некоторую переменную $value
и функцию. Эта переменная передается в функцию-аргумент в виде аргумента. Эта же переменная возвращается как результат выполнения хелпера. Возвращаемое значение функции-аргумента игнорируется:
$user = tap(User::first(), function ($user) {
$user->name = 'taylor';
$user->save();
});
Если функция-аргумент не передается в хелпер, вы можете вызвать любой метод данного $value
. Возвращаемое значение будет всегда $value
, несмотря на то, что возвращает этот метод на самом деле. Например, метод 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
выполняет функцию для заданного значения, если значение не является blank и возвращает результат функции:
$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